如何使用 OWIN 向 ASP.NET 中新创建的用户添加角色

How to add roles to newly created users in ASP.NET using OWIN

如何将所有新注册用户默认设置为 "users" 角色?

这是我注册新用户的代码:

[HttpPost]
public async Task<ActionResult> Register(RegisterViewModel model)
{
    if (!ModelState.IsValid)
    {
        return View(model);
    }

    var roleStore = new RoleStore<IdentityRole>();
    var roleManager = new RoleManager<IdentityRole>(roleStore);

    var userStore = new UserStore<IdentityUser>();
    var userManager = new UserManager<IdentityUser>(userStore);                            

    var user = await userManager.FindAsync(model.Username, model.Password);

    if (user != null)
    {
        ModelState.AddModelError(string.Empty, "The user already exists.");
        return View();
    }
    user = new IdentityUser { UserName = model.Username,Email = model.Email, };
    await userManager.CreateAsync(user, model.Password);           

    return RedirectToAction("Index","Home");
} 
await userManager.CreateAsync(user, model.Password);
if (!roleManager.RoleExists("User"))
    roleManager.Create(new IdentityRole("User"));
userManager.AddToRole(adminUser.Id, "User");

如果出于任何原因 ID 未更新,请使用此:

await userManager.CreateAsync(user, model.Password);
if (!roleManager.RoleExists("User"))
    roleManager.Create(new IdentityRole("User")); 
userManager.AddToRole(userManager.FindByName(user.UserName).Id,"User");