public async Task <IActionResult> NecessarilyChangePassword(NecessarilyChangePasswordViewModel model) { if (ModelState.IsValid) { var user = await _userManager.FindByIdAsync(Convert.ToString(model.Id)); if (user != null) { var resultAuth = await _signInManager.PasswordSignInAsync( userName : user.Email, model.OldPassword, false, lockoutOnFailure : true); if (resultAuth.Succeeded) { await _signInManager.SignOutAsync(); var result = await _userManager.ChangePasswordAsync( user, model.OldPassword, model.NewPassword); if (result.Succeeded) { user.IsPasswordChange = false; var resultUpdate = await _userManager.UpdateAsync(user); if (resultUpdate.Succeeded) { return(RedirectToAction("Login", "Login")); } else { ModelState.AddModelError(string.Empty, "Неверный"); } } else { ModelState.AddModelError("OldPassword", "Неверный пароль"); } } else { ModelState.AddModelError("OldPassword", "Неверный пароль!"); } if (resultAuth.IsLockedOut) { ModelState.AddModelError(string.Empty, "Твой аккаунт заблокирован на 10 минут"); } } else { ModelState.AddModelError(string.Empty, "Пользователь не найден"); } } return(View(model)); }
public async Task <IActionResult> NecessarilyChangePassword(int id) { var user = await _userManager.FindByIdAsync(Convert.ToString(id)); if (user == null) { return(NotFound()); } var model = new NecessarilyChangePasswordViewModel { Id = user.Id }; return(View(model)); }