public IHttpActionResult ResetUserPassword(int userId) { try { if (HttpContext.Current.User.Identity.IsAuthenticated) { var userDetails = _userDetailContext.ResetUserPassword(userId); var user = UserManager.FindById(userDetails.UserId); var randomCharUp = GenrateRandomPassword("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); var randomCharLow = GenrateRandomPassword("abcdefghijklmnopqrstuvwxyz"); var randomNum = GenrateRandomPassword("0123456789"); var password = "" + randomCharUp + "" + randomCharLow + "" + randomNum; string userToken = UserManager.GeneratePasswordResetToken(user.Id); var resetPasswordAc = new ResetPasswordAc(); var resetPasword = UserManager.ResetPassword(user.Id, userToken, password); if (resetPasword.Succeeded) { resetPasswordAc.Succeeded = true; resetPasswordAc.ResetPassword = password; } else { resetPasswordAc.Succeeded = false; resetPasswordAc.ResetPassword = "******"; } return(Ok(resetPasswordAc)); } else { return(BadRequest()); } } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
public async Task <IActionResult> ResetPasswordAsync([FromBody] ResetPasswordAc resetPassword) { if (string.IsNullOrEmpty(resetPassword.Username)) { return(BadRequest(new ApiServiceResponse() { Status = -100, Message = "Username can't be empty" })); } else if (string.IsNullOrEmpty(resetPassword.Code)) { return(BadRequest(new ApiServiceResponse() { Status = -100, Message = "Code can't be empty" })); } else if (string.IsNullOrEmpty(resetPassword.Password)) { return(BadRequest(new ApiServiceResponse() { Status = -100, Message = "Password can't be empty" })); } else if (string.IsNullOrEmpty(resetPassword.ConfirmPassword)) { return(BadRequest(new ApiServiceResponse() { Status = -100, Message = "Confirm password can't be empty" })); } else { if (resetPassword.Password != resetPassword.ConfirmPassword) { return(BadRequest(new ApiServiceResponse() { Status = -100, Message = "Password must be same as Confirm password" })); } else { var user = await _userManager.FindByNameAsync(resetPassword.Username); if (user == null) { return(BadRequest(new ApiServiceResponse() { Status = -100, Message = "Invalid username" })); } else { var isSuccess = await _userManager.ResetPasswordAsync(user, resetPassword.Code, resetPassword.Password); if (isSuccess.Succeeded) { return(Ok(new ApiServiceResponse() { Status = 200, Message = "Password reset successfully" })); } else { return(BadRequest(new ApiServiceResponse() { Status = -100, Message = "Invalid reset code" })); } } } } }