I have just gone through this pain myself. It actually turned out to be pretty simple. Just extend IdentityRole with your new properties.
public class ApplicationRole : IdentityRole { public ApplicationRole(string name) : base(name) { } public ApplicationRole() { } public string Description { get; set; } }
Then you need to add the line
new public DbSet<ApplicationRole> Roles { get; set; }
into your ApplicationDbContext class like this otherwise you will get errors.
public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { public ApplicationDbContext() : base("DefaultConnection") {} new public DbSet<ApplicationRole> Roles { get; set; } }
thats all I needed to do. Make sure you change all instances of IdentityRole to ApplicationRole including anything you are seeding. Also, dont forget to issue a "update-database" to apply the changes to your DB. Any existing rows in there won't be seen by your new RoleManager unless you have the "ApplicationRole" set as a discriminator. You can easily add this yourself.
HTH
Erik