public JsonResult ProcessPasswordResetRequest(ResetUserAccessInfoObj resetObj) { try { if (resetObj == null || string.IsNullOrEmpty(resetObj.Email) || string.IsNullOrEmpty(resetObj.ConfirmationCode) || resetObj.Email.Length < 5 || resetObj.ConfirmationCode.Length < 5) { return(Json(new { IsSuccessful = false, Error = "Invalid Password Reset Information" })); } if (string.IsNullOrEmpty(resetObj.NewPassword) || resetObj.NewPassword.Length < 3) { return(Json(new { IsSuccessful = false, Error = "New Password must be at least 3 characters" })); } if (string.IsNullOrEmpty(resetObj.ConfirmPassword) || resetObj.ConfirmPassword.Length < 3) { return(Json(new { IsSuccessful = false, Error = "Confirm Password must be at least 3 characters" })); } if (string.Compare(resetObj.NewPassword, resetObj.ConfirmPassword, StringComparison.CurrentCultureIgnoreCase) != 0) { return(Json(new { IsSuccessful = false, Error = "New Password and Confirm Password must match" })); } var passObj = new PasswordResetConfirmObj { Password = resetObj.NewPassword, Email = resetObj.Email, ConfirmationCode = resetObj.ConfirmationCode, }; var changePassword = new PortalUserManager().ProcessPasswordReset(passObj, ""); if (changePassword?.Status == null) { return(Json(new { IsSuccessful = false, Error = "Error Occurred! Please try again later" })); } if (!changePassword.Status.IsSuccessful) { return(Json(new { IsSuccessful = false, Error = string.IsNullOrEmpty(changePassword.Status.Message.FriendlyMessage) ? "Process Failed! Unable to reset your password" : changePassword.Status.Message.FriendlyMessage })); } return(Json(new { IsSuccessful = true, Error = "" })); } catch (Exception ex) { UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message); return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" })); } }
public ActionResult ResetUserAccess(string userId, string userCode) { try { ViewBag.Error = ""; Session["_resetSystem_data"] = null; if (string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(userCode)) { ViewBag.Error = "Invalid Password Reset Link"; return(View(new ResetUserAccessInfoObj())); } userId = userId.CleanEncryptedString(); userCode = userCode.CleanEncryptedString(); var username = userId.DecryptUrlItem(); var code = userCode.DecryptUrlItem(); if (string.IsNullOrEmpty(username) || username.Length < 5) { ViewBag.Error = "Invalid Password Reset Link"; return(View(new ResetUserAccessInfoObj())); } if (string.IsNullOrEmpty(code) || code.Length < 5) { ViewBag.Error = "Invalid Password Reset Link"; return(View(new ResetUserAccessInfoObj())); } var confirm = new ResetUserAccessInfoObj { ConfirmationCode = code.Trim(), Email = username, NewPassword = "", ConfirmPassword = "" }; Session["_resetSystem_data"] = confirm; return(View(confirm)); } catch (Exception ex) { ViewBag.Error = "Error Occurred! Please try again later"; UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message); return(View(new ResetUserAccessInfoObj())); } }