public async Task <IActionResult> ChangePassword(UserChangePasswordProfileServiceModel model) { if (!ModelState.IsValid) { return(View(model)); } User user = await this.userManager.GetUserAsync(User); bool changePasswordResult = await this.userService.ChangePasswordAsync(user, model.OldPassword, model.NewPassword); if (!changePasswordResult) { TempData.AddErrorMessage($"Error. Your password could not be changed. Please try again."); return(View(model)); } TempData.AddSuccessMessage($"Your password has been changed."); return(RedirectToAction(nameof(Profile), new { username = User.Identity.Name })); }
public async Task <IActionResult> ChangePassword(string username) { User user = await this.userManager.FindByNameAsync(username); if (user == null) { return(NotFound()); } bool userHasPassword = await this.userManager.HasPasswordAsync(user); if (!userHasPassword) { TempData.AddErrorMessage("You do not have a password. You are using an external login provider."); return(RedirectToAction(nameof(Profile), new { username = User.Identity.Name })); } UserChangePasswordProfileServiceModel model = await this.userService.GetChangePasswordProfileByIdAsync(user.Id); return(View(model)); }