Как я могу удалить / добавить роль от / к пользователю? - PullRequest
0 голосов
/ 26 апреля 2020

Вот как я хочу, чтобы это работало. Как работает ?

userManager.RemoveRole(oldAdminUser, "GroupAdmin");
userManager.RemoveRole(newAdminUser, "GroupUser");
userManager.AddRole(oldAdminUser, "GroupUser");
userManager.AddRole(newAdminUser, "GroupAdmin");

В приведенном выше примере с фантазией два пользователя меняются ролями. Старый администратор становится пользователем, а старый - администратором.

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

Попробуйте это:

await userManager.RemoveFromRoleAsync(oldAdminUser, "GroupAdmin");
await userManager.RemoveFromRoleAsync(newAdminUser, "GroupUser");
await userManager.AddToRoleAsync(oldAdminUser, "GroupUser");
await userManager.AddToRoleAsync(newAdminUser, "GroupAdmin");
0 голосов
/ 26 апреля 2020

В классе Role Controller необходимо добавить в конструктор зависимость класса RoleManager.

Класс RoleManager используется для управления ролями в идентификации и имеет некоторые важные функции. и свойства. role является объектом типа IdentityRole.

Пример создания и удаления ролей:

        [HttpPost]
        public async Task<IActionResult> Create([Required]string name)
        {
            if (ModelState.IsValid)
            {
                IdentityResult result = await roleManager.CreateAsync(new IdentityRole(name));
                if (result.Succeeded)
                    return RedirectToAction("Index");
                else
                    Errors(result);
            }
            return View(name);
        }

        [HttpPost]
        public async Task<IActionResult> Delete(string id)
        {
            IdentityRole role = await roleManager.FindByIdAsync(id);
            if (role != null)
            {
                IdentityResult result = await roleManager.DeleteAsync(role);
                if (result.Succeeded)
                    return RedirectToAction("Index");
                else
                    Errors(result);
            }
            else
                ModelState.AddModelError("", "No role found");
            return View("Index", roleManager.Roles);
        }

Затем вы можете использовать следующие члены класса UserManager для игры с ролями:

userManager.AddToRoleAsync(AppUser user, string name)

userManager.RemoveFromRoleAsync(AppUser user, string name)

et c.

Вы можете прочитать полный текст статьи здесь

...