如何使用asp.net核心身份为用户分配角色



我想在AspNetUserRoles表中将一个用户分配给一个角色。但是我不知道我错在哪里。

1。(字符串id)是我想为其分配角色的用户的id。

  1. 我尝试使用"版主"的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

相关内容

  • 没有找到相关文章

最新更新