我可能会为此获得一些不同的选择,但我有基本的#34;开箱即用" ASP.NET Identity Framework 2启用了应用程序。我目前有AspNetRoles,AspNetUsers和AspNetUserRoles的标准表,依此类推。
也就是说,我们的应用程序(除了其他内容)的要求是将用户分配到组而不是角色。我们之前的项目称为" RoleTemplates",示例可能包含类似" Admin"或" ReportUser"谁只能访问报告。我已经设置了一种方法,将一个Roles表与一个RoleTemplates表以" RoleTemplateRoles"的形式相关联,另一个Web UI用于向角色模板添加或删除角色,实质上是为Admins或者特定的组,而不是直接用户。
我预计我的下一步将是设置一个" AspNetUserRoleTemplates"表,将用户与角色模板相关联而不是角色。但是从那里开始,我不确定应用程序本身可能需要改变什么 - 我已经确定的一些关键领域似乎是代表这种关系的EDMX模型,以及ConfigureAuth方法和IdentityModels .cs,看起来像这样,目前还没有多大的定制。
public class ApplicationUser : IdentityUser
{
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
设计此类功能的建议是什么?我想我可能需要自定义一些内置在标准MVC5应用程序中的代码,以查看角色模板以获得角色,我不确定我是否可以遵循最佳实践以及最佳实践在保持应用程序安全且易于维护的同时自定义此功能。