john
john

Reputation: 834

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

How can i set all new registered users by default to role "users"?

Here`s my code for registering new 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");
} 

Upvotes: 1

Views: 767

Answers (1)

Sam FarajpourGhamari
Sam FarajpourGhamari

Reputation: 14741

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

if for any reason ID dose not updated use this:

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

Upvotes: 2

Related Questions