【问题标题】:mvc 5 check user rolemvc 5 检查用户角色
【发布时间】:2013-11-10 11:00:15
【问题描述】:

如何在 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

我们还有其他方法吗?

【问题讨论】:

  • 使用 Alex 的回答,或者如果您检查是否应允许用户进入控制器/网页,请使用控制器上方的 [Authorize(Roles = "admin")]。

标签: c# authentication asp.net-mvc-5 asp.net-identity


【解决方案1】:
bool result = User.IsInRole("admin") 

容易得多。 :)

【讨论】:

  • 啊,你打败了我.. :-)
  • 该死!我很接近! :)
  • 别忘了使用 Microsoft.AspNet.Identity
猜你喜欢
  • 2019-08-22
  • 1970-01-01
  • 2014-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-17
  • 2014-11-02
  • 2015-07-17
相关资源
最近更新 更多