添加用户角色并将其映射到用户

时间:2015-05-26 14:13:30

标签: c# asp.net-identity

我正在使用ASP.NET Identify和Web API进行身份验证。

我有这段代码:

public async Task<IdentityResult> RegisterUser(UserModel userModel)
  {
     IdentityUser user = new IdentityUser
     {
        UserName = userModel.UserName,            
     };

     var result = await _userManager.CreateAsync(user, userModel.Password);

     return result;
  }

在AuthContext中,我使用以下代码行添加了这些角色:

Roles.Add(new IdentityRole { Name = "User" });
Roles.Add(new IdentityRole { Name = "Admin" });
Roles.Add(new IdentityRole { Name = "Superadmin" });

所以现在我需要知道如何将这些角色之一添加到用户。你能救我吗?

感谢。

2 个答案:

答案 0 :(得分:2)

UserManager类有AddToRoleAsync()

_userManager.AddToRoleAsync(userModel.Id, "User");

答案 1 :(得分:0)

我已经找到了解决问题的方法。

我添加了 SBurris 的代码(非常感谢!)

_userManager.AddToRoleAsync(userModel.Id, "User");

以下

var result = await _userManager.CreateAsync(user, userModel.Password);

但这不是结束:您必须将添加的角色插入到表 AspNetRole 中的数据库中。现在,应用程序将启动并正常运行。