public static async Task CreateRoles(IServiceProvider serviceProvider, IConfiguration Configuration) { //adding customs roles var RoleManager = serviceProvider.GetRequiredService <RoleManager <StoreRole> >(); var UserManager = serviceProvider.GetRequiredService <UserManager <GameStoreUser> >(); string[] roleNames = { "Admin", "Manager", "Member" }; IdentityResult roleResult; foreach (var roleName in roleNames) { // creating the roles and seeding them to the database var roleExist = await RoleManager.RoleExistsAsync(roleName); if (!roleExist) { roleResult = await RoleManager.CreateAsync(new StoreRole(roleName)); } } // creating a super user who could maintain the web app var poweruser = new GameStoreUser { UserName = Configuration.GetSection("UserSettings")["UserEmail"], Email = Configuration.GetSection("UserSettings")["UserEmail"] }; string userPassword = Configuration.GetSection("UserSettings")["UserPassword"]; var user = await UserManager.FindByEmailAsync(Configuration.GetSection("UserSettings")["UserEmail"]); if (user == null) { var createPowerUser = await UserManager.CreateAsync(poweruser, userPassword); if (createPowerUser.Succeeded) { // here we assign the new user the "Admin" role await UserManager.AddToRoleAsync(poweruser, "Admin"); } } }
public async Task <ActionResult> Register(RegisterViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var user = new GameStoreUser { Email = model.Email, UserName = model.UserName }; var result = await userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return(View(model)); } await signInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); userManager.AddToRole(user.Id, "Customer"); return(ReturnToGamesList()); }