in app/Controllers/AccountController.cs [72:99]
public async Task<IActionResult> ChangePassword(ChangePassword changePassword)
{
if (!ModelState.IsValid)
return View(changePassword);
var user = await _userManager.GetUserAsync(HttpContext.User);
if (user == null)
return NotFound();
var changePassResult = await _userManager.ChangePasswordAsync(user, changePassword.CurrentPassword, changePassword.NewPassword);
if (!changePassResult.Succeeded)
{
foreach (var error in changePassResult.Errors)
ModelState.AddModelError(error.Code, error.Description);
return View(changePassword);
}
if(user.EnforceChangePassword)
{
user.EnforceChangePassword = false;
await _userManager.UpdateAsync(user);
}
_logger.LogInformation($"User {user.UserName} password changed.");
return RedirectToAction("ChangePasswordConfirmation");
}