我最近在使用MVC 5和身份2.0新的应用程序开始工作时,为了使用不同的密码散列算法我实现了这个指南中详细介绍的自定义标识( https://code.msdn.microsoft.com/ASPNET-45- MVC5 -自定义- 1a94ab26#内容 )。
我已经看过结合角色为这个身份实施的各种方式,但到目前为止还没有发现让他们与这个新的身份执行工作的方式。
现在有没有人对如何去添加角色到一个类似的自定义身份提供指导?
任何指导,将是非常赞赏。
我最近在使用MVC 5和身份2.0新的应用程序开始工作时,为了使用不同的密码散列算法我实现了这个指南中详细介绍的自定义标识( https://code.msdn.microsoft.com/ASPNET-45- MVC5 -自定义- 1a94ab26#内容 )。
我已经看过结合角色为这个身份实施的各种方式,但到目前为止还没有发现让他们与这个新的身份执行工作的方式。
现在有没有人对如何去添加角色到一个类似的自定义身份提供指导?
任何指导,将是非常赞赏。
你的实现的IdentityUser
( ApplicationUser
:如果您正在使用标准模板)将提供方法与角色的用户联系起来: AddToRoleAsync
, AddToRolesAsync
, GetRolesAsync
, RemoveFromRolesAsync
。
如果你要管理的角色,我怀疑,你必须添加一个RoleManager<IdentityRole>
public class ApplicationRoleManager : RoleManager<IdentityRole>
{
public ApplicationRoleManager(IRoleStore<IdentityRole, string> roleStore)
: base(roleStore)
{
}
public static ApplicationRoleManager Create(IdentityFactoryOptions<ApplicationRoleManager> options, IOwinContext context)
{
var appRoleManager = new ApplicationRoleManager(new RoleStore<IdentityRole>(context.Get<ApplicationDbContext>()));
return appRoleManager;
}
}
这增加了owin方面:
app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);
该ApplicationRoleManager将允许您创建角色( CreateAsync
),发现( FindByIdAsync
),删除( DeleteAsync
)。
当你的ApplicationUserManager:
public class ApplicationUserManager : UserManager<ApplicationUser>
{
...
}
将让你的角色与用户(关联AddToRoleAsync
),删除( RemoveFromRoleAsync
)。
如果您使用的界面来实现你的UserStore IUserStore
,那么你就需要实现IUserRoleStore
为好。
在这最后的界面,你可以找到AddToRoleAsync
, GetRolesAsync
, IsInRoleAsync
, RemoveFromRoleAsync
。
你要实现你的Rolestore的( IRoleStore
)为好。
如果你想阅读有关此主题的一些好文章,我建议你看看这个博客 。 这家伙写了4篇文章至今约ASP.NET身份2.X:
第1部分
第2部分
第3部分
第4部分 (一个你感兴趣的)
这是另一个家伙谁的话题写有趣的东西。