我想在AspNetUserRoles表中将一个用户分配给一个角色。但是我不知道我错在哪里。
1。(字符串id)是我想为其分配角色的用户的id。
- 我尝试使用"版主"的id;角色,但仍然不起作用。
注:这不是在创建帐户时,只是想把它弄清楚。
下面是我的代码:public async Task<IActionResult> MakeModerator(string id)
{
var roles = _context.Roles.ToList();
var roleId = _context.UserRoles.Where(u => u.UserId == id).Select(r => r.RoleId).SingleOrDefault();
var userRole = roles.Where(r => r.Id == roleId).Select(n => n.Name).SingleOrDefault();
var userToadd = new ShuttersIncUser { UserName = id };
if (userRole != "Moderator" && userRole != "Admin")
{
await _userManager.AddToRoleAsync(userToadd, "Moderator");
_context.SaveChanges();
}
else
{
}
return RedirectToAction("AllUsers");
}
首先需要获取带有Id或userName的用户,然后分配角色。
var userToadd = _userManager.FindByIdAsync(id); or
var userToadd = _userManager.FindByNameAsync(id);
不需要使用_context。SaveChanges。你也可以在控制器中注入RoleManager _roleManager,然后使用_roleManager来获取角色,而不是使用_context