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

时间:2015-06-05 15:54:52

标签: c# asp.net-mvc asp.net-identity asp.net-roles

在更新实体框架中的dll之前我能够做到这一点

INNODB_BUFFER_POOL_SIZE

现在,我只能做r.RoleId,而我无法找到一种方法来检索thar Role Id的名称。我在我的控制器和AuthorizeAttribute类中使用它。

有人可以帮助我吗?

此致

4 个答案:

答案 0 :(得分:8)

RoleMananger

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

您可能需要花一些时间来了解Asp.Net SecurityAsp.Net Identity中的新安全功能。

答案 1 :(得分:8)

试试这个

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

答案 2 :(得分:1)

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

User.IsInRole("Admin");

答案 3 :(得分:0)

我刚刚almost exactly the same issue,我解决了这个问题:

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,这可能很方便。