public ActionResult MemberResetPasswordSetRenderForm() { var model = new MemberResetPasswordSetModel(); model.Email = Request.QueryString["email"] ?? string.Empty; model.ValidateGUID = Request.QueryString["validateGUID"] ?? string.Empty; var memberService = Services.MemberService; var member = memberService.GetByEmail(model.Email); if (member != null) { string resetPasswordGuid = member.GetValue <string>("validateGUID"); DateTime resetPasswordGuidExpiry = member.GetValue <DateTime>("validateGUIDExpiry"); if (model.ValidateGUID != String.Empty && resetPasswordGuid == model.ValidateGUID && DateTime.Now < resetPasswordGuidExpiry && model.PasswordNew == model.PasswordNew2) { TempData["Success"] = "False"; return(PartialView("Account/MemberResetPasswordSet", model)); } else { TempData["Status"] = "Your password link is invalid - please request a new link."; return(PartialView("Account/MemberResetPassword", model)); } } else { TempData["Status"] = "Your password link is invalid - please request a new link."; return(PartialView("Account/MemberResetPassword", model)); } }
public ActionResult MemberResetPasswordSetPost(MemberResetPasswordSetModel model) { if (ModelState.IsValid) { var memberService = Services.MemberService; var member = memberService.GetByEmail(model.Email); if (member != null) { string resetPasswordGuid = member.GetValue <string>("validateGUID"); DateTime resetPasswordGuidExpiry = member.GetValue <DateTime>("validateGUIDExpiry"); if (model.ValidateGUID != String.Empty && resetPasswordGuid == model.ValidateGUID && DateTime.Now < resetPasswordGuidExpiry && model.PasswordNew == model.PasswordNew2) { member.IsLockedOut = false; // if the user has tried repeatedly they might have locked their account member.SetValue("validateGUIDExpiry", DateTime.Now.AddHours(-1)); member.IsApproved = true; // depending on your security rules this might not be right for you. // remember to save memberService.Save(member); // save their password memberService.SavePassword(member, model.PasswordNew); TempData["Success"] = "True"; TempData["Status"] = "Your password has been changed - you can now login."; return(CurrentUmbracoPage()); } else { TempData["Status"] = "Your link has expired - please try requesting the new password again."; return(CurrentUmbracoPage()); } } else { // model is invalid TempData["Status"] = "Invalid information supplied."; return(CurrentUmbracoPage()); } } else { // model is invalid TempData["Status"] = "Invalid information supplied."; return(CurrentUmbracoPage()); } }