public async Task <IActionResult> OnPostAsync(string returnUrl = null) { var role = Request.Form["SelectedRole"]; returnUrl = returnUrl ?? Url.Content("~/Users"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { var user = new WarehouseUser { UserName = Input.Email, Email = Input.Email, EmailConfirmed = true, Name = Input.Name }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { await _userManager.AddToRoleAsync(user, role); _logger.LogInformation("User created a new account with password."); return(LocalRedirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } var roles = _roleManager.Roles.ToList(); Staff = new SelectList(roles); return(Page()); }
public async Task <IActionResult> Edit(string userId, List <string> roles, string userName) { // получаем пользователя WarehouseUser user = await _userManager.FindByIdAsync(userId); if (user != null) { // получем список ролей пользователя var userRoles = await _userManager.GetRolesAsync(user); // получаем все роли var allRoles = _roleManager.Roles.ToList(); // получаем список ролей, которые были добавлены var addedRoles = roles.Except(userRoles); // получаем роли, которые были удалены var removedRoles = userRoles.Except(roles); await _userManager.AddToRolesAsync(user, addedRoles); await _userManager.RemoveFromRolesAsync(user, removedRoles); //_userManager.NormalizeName(_NormalizeName); var _user = _db.Users.FirstOrDefault(a => a.Id == userId); _user.Name = userName; await _db.SaveChangesAsync(); return(RedirectToPage("/Account/Manage/Admin", new { area = "Identity" })); } return(NotFound()); }
public async void CreateUser(UserManager <WarehouseUser> _userManager, SignInManager <WarehouseUser> _signInManager, ApplicationDbContext _context, string _email, string _password) { var user = new WarehouseUser { UserName = _email, Email = _email }; var result = await _userManager.CreateAsync(user, _password); var signin = await _signInManager.PasswordSignInAsync(_email, _password, true, lockoutOnFailure : false); }
public async Task <ActionResult> Delete(string Id) { WarehouseUser user = await _userManager.FindByIdAsync(Id); if (user != null) { IdentityResult result = await _userManager.DeleteAsync(user); if (result.Succeeded) { return(Json(new { success = true, message = "Успешное удаление" })); } } return(Json(new { success = true, message = "Ошибка удаление" })); }
public async Task <ActionResult> Delete(string id) { WarehouseUser user = await _userManager.FindByIdAsync(id); if (user != null) { if (!_userManager.IsInRoleAsync(user, "Admin").Result) { await _userManager.DeleteAsync(user); return(RedirectToPage("/Account/Manage/Admin", new { area = "Identity" })); } } return(RedirectToPage("/Account/Manage/Admin", new { area = "Identity" })); }
/// <summary> /// Страница редактирования ролей пользователя /// </summary> /// <param name="userId">Уникальный идентификатор пользователя</param> /// <returns>Возвращает представление для редактирования</returns> public async Task <IActionResult> Edit(string userId) { // получаем пользователя WarehouseUser user = await _userManager.FindByIdAsync(userId); if (user != null) { // получем список ролей пользователя var userRoles = await _userManager.GetRolesAsync(user); var allRoles = _roleManager.Roles.ToList(); ChangeRoleViewModel model = new ChangeRoleViewModel { UserId = user.Id, UserName = user.Name, UserEmail = user.Email, UserRoles = userRoles, AllRoles = allRoles }; return(View(model)); } return(NotFound()); }