public ActionResult ChangePass(string id) { Account_ChangePass viewChangePass = new Account_ChangePass(); viewChangePass.ShowFieldSet = true; if (String.IsNullOrEmpty(id)) { ViewData.ModelState.AddModelError("*", "There was an error processing this request. Please refresh and try again."); viewChangePass.ShowFieldSet = false; ViewData["Title"] = "Change Password - Failed"; } else { var db = new UsersDataContext(); var username = db.S1_Users_ForgotPassword_GetUserName(id); if (username == null) { ViewData.ModelState.AddModelError("*", "The user name could not be located. Please refresh and try again."); viewChangePass.ShowFieldSet = false; ViewData["Title"] = "Change Password - Failed"; } else { ViewData["Title"] = "Change Password"; } } return View("ChangePass", "~/Views/Shared/Site.Master", viewChangePass); }
public ActionResult ChangePass(string id, string newPassword, string confirmPassword) { Account_ChangePass viewChangePass = new Account_ChangePass(); viewChangePass.ShowFieldSet = true; if (String.IsNullOrEmpty(id)) { ViewData.ModelState.AddModelError("*", "There was an error processing this request. Please refresh your browser and try again. If the problem persists, please go to the Forgot Password page and request another password reset."); viewChangePass.ShowFieldSet = false; } if (newPassword == null || newPassword.Length < Provider.MinRequiredPasswordLength) { ViewData.ModelState.AddModelError("newPassword", String.Format(CultureInfo.InvariantCulture, "You must specify a new password of {0} or more characters.", Provider.MinRequiredPasswordLength)); } if (!String.Equals(newPassword, confirmPassword, StringComparison.Ordinal)) { ViewData.ModelState.AddModelError("newPassword", "The new password and confirmation password do not match."); } if (ViewData.ModelState.IsValid) { var db = new UsersDataContext(); var result = db.S1_Users_ForgotPassword_GetUserName(id).SingleOrDefault(); if (result != null) { // Attempt to change password MembershipUser currentUser = Provider.GetUser(result.ForgotPasswordUserName, false); bool changeSuccessful = false; try { changeSuccessful = currentUser.ChangePassword(currentUser.ResetPassword(result.ForgotPasswordAnswer), newPassword); } catch { // An exception is thrown if the new password does not meet the provider's requirements } if (changeSuccessful) { var db1 = new UsersDataContext(); var result1 = db1.S1_Users_ForgotPassword_RemoveGUID(id); if (result1 != 0) { //log the error and notify admins } string em = currentUser.Email; string subject = ConfigurationManager.AppSettings["CompanyName"] + " Billing: Change Password Request"; int sUserID = 0; string clientname = null; string clientstate = null; string clientzipcode = null; var db2 = new UsersDataContext(); var q2 = from o in db.Users where o.aspnet_User.UserName == result.ForgotPasswordUserName select new { sUID = o.UserID }; if (q2.Count() > 0) { sUserID = q2.SingleOrDefault().sUID; var db3 = new UsersDataContext(); var result3 = db3.S1_Users_GetClientContactForEmail(sUserID).SingleOrDefault(); if (result3 == null) { //todo; } else { clientname = result3.ClientName; clientstate = result3.ContactState; clientzipcode = result3.ContactZipCode; } } Dictionary<string, string> messagevalues = new Dictionary<string, string>(); messagevalues.Add("[[COMPANYNAME]]", clientname); messagevalues.Add("[[USERNAME]]", result.ForgotPasswordUserName); messagevalues.Add("[[CORPORATENAME]]", System.Configuration.ConfigurationManager.AppSettings["CompanyName"]); MailGun.SendEmailToUserFromTemplate(12, 0, "Change Password", 0, sUserID, 0, subject, messagevalues); viewChangePass.sUserName = result.ForgotPasswordUserName; return RedirectToAction("ChangePasswordSuccess", "Account", new { portal = ViewData["portal"], ClientID = ViewData["ClientID"] }); /* var messageRecord = Messages.GetMessageTemplateRecord(0, "Change Password", messagevalues); string messagebody = messageRecord != null ? messageRecord.MessageText : null; if (messagebody != null) { int messageActionType = messageRecord.MessageActionTypeID.GetValueOrDefault(); int? MessageIDOutput = new int?(); Guid? MessageActionGuidOutput = new Guid?(); Messages.CreateMessageWithAction(messageActionType, subject, messagebody, sUserID, 1, 0, 3, "", System.DateTime.Now, null, "HTML", ref MessageIDOutput, ref MessageActionGuidOutput); Messages.UpdateMessageAndMarkForSending(MessageIDOutput.Value, subject, messagebody); viewChangePass.sUserName = result.ForgotPasswordUserName; return RedirectToAction("ChangePasswordSuccess", "Account", new { portal = ViewData["portal"], ClientID = ViewData["ClientID"] }); } else { //todoo: future error logging }*/ } } else { ViewData.ModelState.AddModelError("*", "There was an error while trying to reset your password. Please refresh your browser and try again."); } } // If we got this far, something failed, redisplay form ViewData["Title"] = "Change Password"; return View("ConfirmedChangePass", "~/Views/Shared/Site.Master", viewChangePass); }