public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); if (ModelState.IsValid) { var user = new SimpleAdsUser { UserName = Input.Username }; var result = await _userManager.CreateAsync(user, Input.Password); await this._userManager.AddToRoleAsync(user, StringConstants.UserRole); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } return(Page()); }
private async Task CreateUserRoles(IServiceProvider serviceProvider) { var roleManager = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >(); var userManager = serviceProvider.GetRequiredService <UserManager <SimpleAdsUser> >(); if (roleManager.Roles.Any() == false) { //create the roles and seed them to the database await roleManager.CreateAsync(new IdentityRole(StringConstants.AdminRole)); await roleManager.CreateAsync(new IdentityRole(StringConstants.UserRole)); var admin = new SimpleAdsUser { UserName = "******" }; await userManager.CreateAsync(admin, "admin"); await userManager.AddToRoleAsync(admin, StringConstants.AdminRole); } }