22

如何在 mvc 5 中找出登录用户的角色?

我通过这段代码创建了用户

    private bool AddUserAndRole()
    {
        IdentityResult ir;
        var rm = new RoleManager<IdentityRole>
            (new RoleStore<IdentityRole>(new ApplicationDbContext()));
        ir = rm.Create(new IdentityRole("admin"));

        var user = new ApplicationUser() { UserName = "Admin" };
        var result = UserManager.Create(user, "somepassword");
        UserManager.AddToRole(user.Id, "admin");

        return true;
     }

在我由该用户登录网站后。如何在控制器中检查该用户是否具有角色 ==“管理员”?我发现只有一种看起来不太快的方法。

        var rm = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
        var role = rm.FindByName("admin");
        bool result = User.IsInRole(role.Name); //true

我们还有其他方法吗?

4

1 回答 1

93
bool result = User.IsInRole("admin") 

容易得多。:)

于 2013-10-30T17:26:42.913 回答