public async Task Seed() { if (await _context.Users.CountAsync() == 0) { var user = new MdmsUser { UserName = "******", Email = "*****@*****.**", FirstName = "Root", LastName = "Root", BaseSalary = 0, AdditionalOnHourPayment = 0, SecurityStamp = Guid.NewGuid().ToString(), Name = "Root-Root" }; var rootRole = _context.Roles.FirstOrDefault(x => x.Name == "Root"); if (rootRole == null) { _context.Roles.Add(new IdentityRole() { Name = "Root", NormalizedName = "ROOT" }); _context.SaveChanges(); } await _userManager.CreateAsync(user, "root"); await _userManager.AddToRoleAsync(user, "Root"); } }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = "~/Identity/Account/Login"; if (ModelState.IsValid) { var isAdmin = _userManager.Users.Count() == 1; var user = new MdmsUser { UserName = Input.Username, Email = Input.Email, IsAuthorized = false, FirstName = Input.FirstName, LastName = Input.LastName, Name = Input.FirstName + "-" + Input.LastName }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { if (isAdmin) { await _userManager.AddToRoleAsync(user, "Admin"); await _userManager.AddToRoleAsync(user, "User"); await _userManager.AddToRoleAsync(user, "Guest"); user.IsAuthorized = true; await _userManager.UpdateAsync(user); } else { await _userManager.AddToRoleAsync(user, "Guest"); } return(LocalRedirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } return(Page()); }