// GET: /Account/ResetPassword public ActionResult ResetPassword(string prc) { if (AccountService.IsValidResetUrl(prc)) { ResetPasswordModel model = new ResetPasswordModel(); return View(model); } else { return RedirectToAction("InvalidUrl", "Content"); } }
public ActionResult ResetPassword(ResetPasswordModel model) { //validate model, set new password if (ModelState.IsValid) { try { model.Code = Request.Params["prc"]; AccountService.ResetPassword(model); return RedirectToAction("Index", "Home", new { }); } catch (ReturnEmailNotFoundException ex) { return RedirectToAction("InvalidUrl", "Content"); } } else { return View(model); } }
public void ResetPassword(ResetPasswordModel model) { using (IDocumentSession Session = DataDocumentStore.Instance.OpenSession()) { //Find matching return email document var returnEmailDocument = Session.Query<ReturnEmailDocument>().Where(x => x.Hash == System.Uri.UnescapeDataString(model.Code)).Where(x => x.Timestamp <= System.DateTime.Now.AddDays(1)).SingleOrDefault(); if (returnEmailDocument != null) { //Get user based on id var user = Session.Load<AccountUserDocument>(returnEmailDocument.UserId); //Set the flag user.SetPassword(model.Password); //Delete the returnEmailDocument Session.Advanced.DocumentStore.DatabaseCommands.Delete(returnEmailDocument.Id, null); Session.SaveChanges(); } else { throw new ReturnEmailNotFoundException(); } } }