I am using ASPNet Identity to implement security in my web application.
There is a requirements where in, I need to extend the IdentityRole and IdentityUser.
To extend User , Update your ApplicationUser
class(located in IdentityModels.cs
) to
public class ApplicationUser : IdentityUser
{
public async Task
GenerateUserIdentityAsync(UserManager manager)
{
var userIdentity = await manager
.CreateIdentityAsync(this,
DefaultAuthenticationTypes.ApplicationCookie);
return userIdentity;
}
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
// Use a sensible display name for views:
[Display(Name = "Postal Code")]
public string PostalCode { get; set; }
}
To Extend Role , Create a class ApplicationRole.cs
public class ApplicationRole : IdentityRole
{
public ApplicationRole() : base() { }
public ApplicationRole(string name) : base(name) { }
public string Description { get; set; }
}
and Add the class inside IdentityConfig.cs
file :
public class ApplicationRoleManager : RoleManager
{
public ApplicationRoleManager(
IRoleStore roleStore)
: base(roleStore)
{
}
public static ApplicationRoleManager Create(
IdentityFactoryOptions options, IOwinContext context)
{
return new ApplicationRoleManager(
new RoleStore(context.Get()));
}
}
Now clear the old database, Run the application and register a user. It will create 3 more fields(Address,City,State) in AspNetUsers table and one more field(Description) into AspNetRoles table. That's it.
For more info , go to the site : Extending Identity Role