gpt4 book ai didi

c# - 将 Identity 2.0 角色添加到自定义身份

转载 作者:太空宇宙 更新时间:2023-11-03 23:41:15 25 4
gpt4 key购买 nike

我最近开始使用 MVC 5 和 Identity 2.0 开发一个新应用程序,为了使用不同的密码哈希算法,我实现了本指南 (https://code.msdn.microsoft.com/ASPNET-45-MVC5-Custom-1a94ab26#content) 中详述的自定义身份。

我已经研究了将角色合并到这个身份实现中的各种方法,但到目前为止还没有找到让它们与这个新的身份实现一起工作的方法。

现在有人有关于如何向类似的自定义身份提供商添加角色的指南吗?

任何指导将不胜感激。

最佳答案

您对 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 )。

如果您使用接口(interface) IUserStore 实现了 UserStore , 那么你需要实现 IUserRoleStore

在最后一个界面中,您可以找到 AddToRoleAsync , GetRolesAsync , IsInRoleAsync , RemoveFromRoleAsync .

您还必须实现您的 RoleStore ( IRoleStore)。

如果你想阅读一些关于这个主题的好文章,我建议你看看这个 blog .到目前为止,这个人已经写了 4 篇关于 ASP.NET Identity 2.x 的文章:

Part 1
Part 2
Part 3
Part 4 (你感兴趣的那个)

这是另一个 guy谁写了关于该主题的有趣内容。

关于c# - 将 Identity 2.0 角色添加到自定义身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28961197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com