public async Task <bool> ResetPasswordAsync(PasswordResetData passwordResetData, string accessToken) { httpClient.SetBearerToken(accessToken); var response = await httpClient.PostAsJsonAsync(Controller + "ResetPassword", passwordResetData); return(await response.CreateResponseAsync <bool>()); }
public async Task <IHttpActionResult> ResetPassword(PasswordResetData model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } IdentityResult result = null; try { result = await userManager.ResetPasswordAsync(model.UserId.ToString(), model.Token, model.Password); if (!result.Succeeded) { return(GetErrorResult(result)); } } catch (InvalidOperationException) { // Because an invalid token or an invalid password does not throw an error on reset, // we can say the only other parameter (user Id) is invalid. ModelState.AddModelError(string.Empty, "User not recognised"); return(BadRequest(ModelState)); } return(Ok(result.Succeeded)); }
public async Task <IHttpActionResult> IsPasswordResetTokenValid(PasswordResetData model) { string userId = model.UserId.ToString(); bool result = await userManager.VerifyUserTokenAsync(userId, "ResetPassword", model.Token); return(Ok(result)); }
public async Task <IActionResult> ResetPassword([FromBody, BindRequired] PasswordResetData data) { var result = await _passwordResetService.ResetPassword(data.Token, data.NewPassword); if (result) { return(Ok()); } return(Forbid()); }
public async Task <ActionResult> ResetPassword(Guid id, string token, ResetPasswordModel model) { if (!ModelState.IsValid) { return(View(model)); } using (var client = apiClient()) { var passwordResetData = new PasswordResetData { Password = model.Password, Token = token, UserId = id }; try { var response = await apiClientCredential().GetClientCredentialsAsync(); bool result = await client.User.ResetPasswordAsync(passwordResetData, response.AccessToken); return(View(!result ? "ResetPasswordExpired" : "ResetPasswordComplete")); } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } foreach (var modelState in ViewData.ModelState.Values.ToList()) { List <int> errorsToRemoveIndex = new List <int>(); for (var i = modelState.Errors.Count - 1; i >= 0; i--) { if (modelState.Errors[i].ErrorMessage.Contains("Passwords") && modelState.Value == null) { errorsToRemoveIndex.Add(i); } } foreach (int index in errorsToRemoveIndex) { modelState.Errors.RemoveAt(index); } } } return(View(model)); } }
public async Task <ActionResult> ResetPassword(PasswordResetData DataToReset, CancellationToken Cancel) { try { await JwtAuthenticationService.ResetPassword(DataToReset.NewPassword, DataToReset.Hash, Cancel); return(Ok()); } catch { return(BadRequest()); } }
public async Task <ActionResult> ResetPassword(Guid id, string token) { using (var client = apiClient()) { var passwordResetData = new PasswordResetData { Password = string.Empty, Token = token, UserId = id }; var response = await apiClientCredential().GetClientCredentialsAsync(); bool result = await client.User.IsPasswordResetTokenValidAsync(passwordResetData, response.AccessToken); return(View(!result ? "ResetPasswordExpired" : "ResetPassword")); } }
public async Task <ActionResult> ResetPassword(Guid id, string token, ResetPasswordModel model) { if (!ModelState.IsValid) { return(View(model)); } using (var client = apiClient()) { var passwordResetData = new PasswordResetData { Password = model.Password, Token = token, UserId = id }; try { var response = await apiClientCredential().GetClientCredentialsAsync(); bool result = await client.User.ResetPasswordAsync(passwordResetData, response.AccessToken); return(View(!result ? "ResetPasswordExpired" : "ResetPasswordComplete")); } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } AddRemoveModelStateErrors(); } return(View(model)); } }
public async Task<ActionResult> ResetPassword(Guid id, string token, ResetPasswordModel model) { if (!ModelState.IsValid) { return View(model); } using (var client = apiClient()) { var passwordResetData = new PasswordResetData { Password = model.Password, Token = token, UserId = id }; try { bool result = await client.User.ResetPasswordAsync(passwordResetData); return View(!result ? "ResetPasswordExpired" : "ResetPasswordComplete"); } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } AddRemoveModelStateErrors(); } return View(model); } }
public async Task<ActionResult> ResetPassword(Guid id, string token) { using (var client = apiClient()) { var passwordResetData = new PasswordResetData { Password = string.Empty, Token = token, UserId = id }; bool result = await client.User.IsPasswordResetTokenValidAsync(passwordResetData); return View(!result ? "ResetPasswordExpired" : "ResetPassword"); } }
public async Task<IHttpActionResult> ResetPassword(PasswordResetData model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } try { var result = await userManager.ResetPasswordAsync(model.UserId.ToString(), model.Token, model.Password); if (!result.Succeeded) { return GetErrorResult(result); } } catch (InvalidOperationException) { // Because an invalid token or an invalid password does not throw an error on reset, we can say the only other parameter (user Id) is invalid ModelState.AddModelError(string.Empty, "User not recognised"); return BadRequest(ModelState); } return Ok(true); }
public async Task<bool> ResetPasswordAsync(PasswordResetData passwordResetData) { var response = await httpClient.PostAsJsonAsync(Controller + "ResetPassword", passwordResetData); return await response.CreateResponseAsync<bool>(); }
public async Task<ActionResult> ResetPassword(Guid id, string token, ResetPasswordModel model) { if (!ModelState.IsValid) { return View(model); } using (var client = apiClient()) { var passwordResetData = new PasswordResetData { Password = model.Password, Token = token, UserId = id }; try { bool result = await client.User.ResetPasswordAsync(passwordResetData); return View(!result ? "ResetPasswordExpired" : "ResetPasswordComplete"); } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } foreach (var modelState in ViewData.ModelState.Values.ToList()) { List<int> errorsToRemoveIndex = new List<int>(); for (var i = modelState.Errors.Count - 1; i >= 0; i--) { if (modelState.Errors[i].ErrorMessage.Contains("Passwords") && modelState.Value == null) { errorsToRemoveIndex.Add(i); } } foreach (int index in errorsToRemoveIndex) { modelState.Errors.RemoveAt(index); } } } return View(model); } }
public async Task<IHttpActionResult> IsPasswordResetTokenValid(PasswordResetData model) { string userId = model.UserId.ToString(); bool result = await userManager.VerifyUserTokenAsync(userId, "ResetPassword", model.Token); return Ok(result); }