【问题标题】:How to add a user to a role?如何将用户添加到角色?
【发布时间】:2014-04-18 19:04:51
【问题描述】:

我的应用程序中有执行此操作的现有代码:

if (HttpContext.Current.User.IsInRole("Customer Account Admin"))
                    //
                    {
                    }
                    else
                    {
                        mi = radmenu1.Items.FindItemByText("Admin");
                        radmenu1.Items.Remove(mi);
                    }

是什么让用户担任该角色 我们没有使用旧的角色管理器。我们正在使用 ASP.NET Identity 2.0,但似乎没有这样做:

var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();


    if (manager.AddToRole(manager.FindByName(UserName.Text).Id, "Customer Account Admin").Succeeded)
    {
       c.logActivity("Register.aspx.cs", "REG_USER_ROLE", "Setting user to Admin role succeeded");
                                    }
    }

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-identity-2


    【解决方案1】:

    您可以使用 IsInRole

    private ApplicationUserManager _userManager;
    
    public ApplicationUserManager UserManager 
    {
       get 
       {
          if (_userManager == null) 
          {
             _userManager = HttpContext.GetOwinContext()
                 .GetUserManager<ApplicationUserManager>();
          }
          return _userManager;
       }
    }
    
    bool isAdmin = UserManager.IsInRole(User.Identity.GetUserId(), 
       "Customer Account Admin");
    

    【讨论】:

    • 那不就是检查他是那个角色吗?我想将他添加到角色中。
    • 我不需要那个。我不需要知道他是否在这个角色中。我需要将他添加到该角色中。
    • 您原来说过如何让用户担任角色? 无论如何,AddToRole 应该可以工作。你试过var roleResult = await UserManager.AddUserToRolesAsync(user.Id, RoleNames);吗? AddUserToRolesAsync 辅助方法附带Microsoft ASP.NET Identity Samples
    猜你喜欢
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多