【问题标题】:How to assign a user to a role using Asp Dot Net Core Identity如何使用 Asp Dot Net Core Identity 为用户分配角色
【发布时间】:2021-02-25 11:28:26
【问题描述】:

我想将用户分配给 AspNetUserRoles 表中的角色。但我无法弄清楚我的错误是什么。

1. (string 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");
    }

【问题讨论】:

    标签: asp.net-mvc asp.net-core asp.net-identity


    【解决方案1】:

    首先您需要使用 Id 或 userName 获取用户,然后分配角色。

    var userToadd = _userManager.FindByIdAsync(id); or 
    var userToadd = _userManager.FindByNameAsync(id);
    
    

    无需使用 _context.SaveChanges 。您还可以在控制器中注入 RoleManager _roleManager,然后使用 _roleManager 来获取角色,而不是使用 _context

    【讨论】:

      猜你喜欢
      • 2019-01-29
      • 2021-12-14
      • 2021-09-08
      • 1970-01-01
      • 2019-05-01
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多