【问题标题】:Add role of a user in asp.net identity?在 asp.net 身份中添加用户角色?
【发布时间】:2015-11-09 18:15:54
【问题描述】:

我想将 AspNetRoles 中的角色分配给 AspNetUsers 中的用户,该角色/用户的 Id 都将存储在 AspNetUserRoles 中。

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
    if (ModelState.IsValid)
    {
        var user = new ApplicationUser() { UserName = model.UserName  };

        var result = await UserManager.CreateAsync(user, model.Password);
        if (result.Succeeded)
        {
            var currentUser = UserManager.FindByName(user.UserName); 

            var roleresult = UserManager.AddToRole(currentUser.Id, "//Employee or Admin");

        }

我有一个下拉菜单,超级管理员可以从中选择用户的角色,它可以是管理员或员工。所以我想获取下拉所选项目的值。我怎样才能做到这一点? 谢谢。

【问题讨论】:

  • 您的RegisterViewModel 是否包含所选角色?

标签: asp.net-mvc-4 asp.net-identity asp.net-identity-2


【解决方案1】:

如果您想拥有一些具有可用角色的Select/dropdown 并创建具有某些选定角色的用户。您必须为RegisterViewModel class property: SelectedRole 创建Select/dropdown 元素,并能够从可用角色列表中选择一个元素。

如何使用您可以找到there 的角色填充DropDownList。

修改注册视图模型以传递SelectedRole值:

public class RegisterViewModel
{
    [Required]
    [EmailAddress]
    [Display(Name = "Email")]
    public string Email { get; set; }

    [Required]
    [Display(Name = "Role")]
    public string SelectedRole { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }
}    

然后在注册期间,您必须使用视图模型中选择的角色并将您创建的用户添加到该角色。

var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
    var currentUser = UserManager.FindByName(user.UserName); 
    var roleresult = UserManager.AddToRole(currentUser.Id, model. SelectedRole);
    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-08
    • 2017-05-16
    • 1970-01-01
    • 2017-09-25
    • 2020-01-24
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多