Reputation: 834
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
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