public async Task <IActionResult> ChangePassword(ChangePasswordViewModel changePasswordViewModel) { if (!ModelState.IsValid) { return(View(changePasswordViewModel)); } if (changePasswordViewModel.NewPassword != changePasswordViewModel.ConfirmNewPassword) { ModelState.AddModelError(string.Empty, "Le nouveau mot de passe ne correspond pas à la confirmation"); return(View(changePasswordViewModel)); } // Récupération de l'utilisateur Person User = await _userManager.GetUserAsync(HttpContext.User); var result = await _userManager.ChangePasswordAsync(User, changePasswordViewModel.Password, changePasswordViewModel.NewPassword); if (!result.Succeeded) { // Retour des erreurs foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } return(View(changePasswordViewModel)); } // Déconnexion await _signInManager.SignOutAsync(); return(Redirect("/")); }