如何使用 Asp Dot Net Core Identity 将用户分配给角色
How to assign a user to a role using Asp Dot Net Core Identity
我想将用户分配给 AspNetUserRoles table 中的角色。但是我不知道我的错误是什么。
1.The(字符串 id)是我要为其分配角色的用户的 ID。
- 我试过使用“版主”角色的 ID,但还是不行。
P.S。这不是在创建帐户时,只是想说明一下。
这是我的代码:
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或用户名,然后分配角色。
var userToadd = _userManager.FindByIdAsync(id); or
var userToadd = _userManager.FindByNameAsync(id);
无需使用 _context.SaveChanges 。您还可以在控制器中注入 RoleManager _roleManager,然后使用 _roleManager 获取角色,而不是使用 _context
我想将用户分配给 AspNetUserRoles table 中的角色。但是我不知道我的错误是什么。
1.The(字符串 id)是我要为其分配角色的用户的 ID。
- 我试过使用“版主”角色的 ID,但还是不行。
P.S。这不是在创建帐户时,只是想说明一下。
这是我的代码:
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或用户名,然后分配角色。
var userToadd = _userManager.FindByIdAsync(id); or
var userToadd = _userManager.FindByNameAsync(id);
无需使用 _context.SaveChanges 。您还可以在控制器中注入 RoleManager _roleManager,然后使用 _roleManager 获取角色,而不是使用 _context