这就是我希望它起作用的方式。 如何工作?
userManager.RemoveRole(oldAdminUser, "GroupAdmin");
userManager.RemoveRole(newAdminUser, "GroupUser");
userManager.AddRole(oldAdminUser, "GroupUser");
userManager.AddRole(newAdminUser, "GroupAdmin");
在上面的幻想示例中,两个用户交换角色。旧管理员成为用户,旧用户成为管理员。
答案 0 :(得分:1)
尝试一下:
await userManager.RemoveFromRoleAsync(oldAdminUser, "GroupAdmin");
await userManager.RemoveFromRoleAsync(newAdminUser, "GroupUser");
await userManager.AddToRoleAsync(oldAdminUser, "GroupUser");
await userManager.AddToRoleAsync(newAdminUser, "GroupAdmin");
答案 1 :(得分:0)
在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)
等
您可以阅读完整的here