在ASP.NET的IdentityUserRole 2.0中获取角色名

本文关键字:获取 角色 ASP NET IdentityUserRole | 更新日期: 2023-09-27 17:53:34

在更新实体框架中的dll之前,我可以这样做

user.Roles.Where(r => r.Role.Name == "Admin").FisrtOrDefault(); 

现在,我只能执行r.r eleid,并且我找不到一种方法来检索该角色Id的名称。我在控制器和AuthorizeAttribute类中使用这个

有人能帮我一下吗?

在ASP.NET的IdentityUserRole 2.0中获取角色名

试试这个

string id = UserManager.FindByEmail(model.Email).Id;
IList<string> roleNames=UserManager.GetRoles(id);

问角色经理?

RoleManager.Roles.
// or
RoleManager.FindByIdAsync()
// or 
RoleManager.FindByNameAsync()

您可能需要花一些时间来学习Asp. js中的新安全特性。网络安全与Asp。净的身份。

我刚刚遇到了几乎完全相同的问题,我这样解决它:

public class UserRole : IdentityUserRole
{
    public virtual Role Role { get; set; } // add this to see roles
    public virtual User User { get; set; } // add this to see users
}

现在你的原始代码user.Roles.Where(r => r.Role.Name == "Admin").FirstOrDefault();将工作,这可能是方便的,如果你不能很容易地访问RoleManager的任何原因。

如果您的目的是检查用户是否在一个角色中,您可以从IPrincipal访问它。操作中的用户对象

User.IsInRole("Admin");