如何将默认角色添加到 Asp.net 标识用户管理器



我是新手,正在探索 Asp.net 身份,我想为我的用户添加一个默认角色。但是,我在运行时未能运行此代码,它向我显示此错误"角色管理员不存在"。

 var userManager = new UserManager<IdentityUser>(userStore);
 var user = userManager.Find(UserName.Text, Password.Text);
 userManager.AddToRole(user.Id,"admin");

我知道我没有创建"管理员"角色,是否有任何最简单的方法来实现此基于角色的授权?

下面是应该

如何完成,首先检查角色是否存在,以及是否没有添加角色。

public async Task<ActionResult> Register(RegisterViewModel model, ApplicationDbContext context)
{
    if (ModelState.IsValid)
    {      
       var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
       var result = await UserManager.CreateAsync(user, model.Password);

       if (result.Succeeded)
            {
            var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
            if (!roleManager.RoleExists("Administrator"))
            {
                await roleManager.CreateAsync(new IdentityRole("Administrator"));
            }
            await UserManager.AddToRoleAsync(user.Id, "Administrator");
            await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
                return RedirectToAction("Index", "Home");
            }
            AddErrors(result);
    }
    // If we got this far, something failed, redisplay form
    return View(model);
}

请注意 ApplicationDbContext 是如何在方法签名中传递的。

相关内容

  • 没有找到相关文章

最新更新