public async Task <ServiceModels.ServiceResponse> ResetPassword(InputModels.ResetPasswordInput input) { var serviceResponse = new ServiceModels.ServiceResponse(); var account = await UserManager.FindByEmailAsync(input.Email); if (account != null) { var identityResult = await UserManager.ResetPasswordAsync(account, input.Code, input.Password); if (!identityResult.Succeeded) { foreach (var error in identityResult.Errors) { Log.LogError($"Error resetting password for '{account.Email}'. Message: {error.Description}"); } } else { Log.LogInformation($"Password was reset for '{account.Email}'."); } } serviceResponse.RedirectPath = nameof(Account.ResetPasswordConfirmation); return(serviceResponse); }
public async Task <IActionResult> ResetPassword(InputModels.ResetPasswordInput input) { if (ModelState.IsValid) { var serviceResponse = await AccountRepository.ResetPassword(input); return(await this.RedirectFromService(serviceResponse, FailureCallback)); } return(await FailureCallback()); async Task <IActionResult> FailureCallback() { await AccountRepository.SignOut(); var viewModel = new ViewModels.Account.ResetPasswordPage { Code = input.Code }; return(View(viewModel)); } }