【问题标题】:Assigning a role to an existing user为现有用户分配角色
【发布时间】:2018-08-21 08:40:05
【问题描述】:

大家好,

我在为 MVC5 中的现有用户分配角色时遇到了一些问题,这将由管理员从只能由管理员访问的视图中完成到目前为止,我已经在启动时创建了一个角色并将其分配给一个超级用户,他将此后有权将管理员角色授予其他特定用户。

        private void createRolesAndDefaultUser()
    {
        ApplicationDbContext db = new ApplicationDbContext();
        var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(db));
        var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));

        //Creation of "Admin" role and Default Admin
        if (!roleManager.RoleExists("Admin"))
        {
            //Create "Admin" role
            var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
            role.Name = "Admin";
            roleManager.Create(role);

            //Create SuperUser/DefaultAdmin
            var User = new ApplicationUser();
            User.UserName = "superUser@email.com";
            User.Email = "superUser@email.com";
            string Password = "Password01!";

            var superUser = UserManager.Create(User, Password);

            //Assign role to superUser
            if (superUser.Succeeded)
            {
                var res = UserManager.AddToRole(User.Id, "Admin");
            }
        }
    }

我在网上看到很多文章允许在注册时分配角色。由于我不希望用户选择自己的角色,因此由超级用户将管理员角色分配给现有用户。

我遇到的问题是如何启用只能由超级用户完成的角色分配给用户?

【问题讨论】:

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


    【解决方案1】:
    var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
                UserManager.AddToRole(UserManager.FindByName(temp).Id, "Admin");
    

    temp 存储将被授予管理员权限的用户的用户名

    【讨论】:

      猜你喜欢
      • 2010-10-09
      • 2020-10-16
      • 2016-03-09
      • 2021-06-11
      • 2019-06-04
      • 2017-11-23
      • 2021-06-29
      • 2019-05-10
      • 2014-04-07
      相关资源
      最近更新 更多