public async Task <ActionResult> ResetPassword(ResetPasswordFormModel formModel) { var form = Service.GetForm(SiteContext.Current, formModel.form_type); if (form != null) { var formErrors = GetFormErrors(ModelState); string userId = HttpContext.Request.Cookies[CustomerIdCookie] != null ? HttpContext.Request.Cookies[CustomerIdCookie].Value : null; string token = HttpContext.Request.Cookies[ResetCustomerPasswordTokenCookie] != null ? HttpContext.Request.Cookies[ResetCustomerPasswordTokenCookie].Value : null; if (userId == null && token == null) { Context.ErrorMessage = "Not enough info for reseting password"; return(View("error")); } if (formErrors == null) { var result = await SecurityService.ResetPasswordAsync(userId, token, formModel.Password); if (result.Succeeded) { HttpContext.Response.Cookies.Remove(CustomerIdCookie); HttpContext.Response.Cookies.Remove(ResetCustomerPasswordTokenCookie); return(View("password_reseted")); } else { form.Errors = new SubmitFormErrors("form", result.Errors.First()); form.PostedSuccessfully = false; } } else { form.Errors = formErrors; form.PostedSuccessfully = false; } } else { Context.ErrorMessage = "Liquid error: Form context was not found."; return(View("error")); } return(View("customers/reset_password")); }
public IActionResult ResetPassword(string code = null) { if (code == null) { throw new ApplicationException("A code must be supplied for password reset."); } var model = new ResetPasswordFormModel { Code = code }; return(View(model)); }
public virtual ActionResult ResetPassword(Guid userId) { var userToReset = db.Get <User>().Where(u => u.Id == userId).Single(); var model = new ResetPasswordFormModel() { UserId = userToReset.Id, UserName = userToReset.UserName, SendToEmailAddress = userToReset.EmailAddress }; return(PartialView(MVC.User.Views.ResetPassword, model, "ResetPassword")); }
public virtual ActionResult ResetPassword(Guid userId, [Bind(Prefix = "ResetPassword")] ResetPasswordFormModel model) { var userToReset = db.Get <User>().Where(u => u.Id == userId).Single(); if (ModelState.IsValid) { try { var newPassword = userToReset.ResetPassword(); if (!string.Equals(model.SendToEmailAddress, userToReset.EmailAddress, StringComparison.InvariantCultureIgnoreCase)) { var mailContent = htmlTemplateManager.GetHtml("MailTemplates/UserPasswordReset") .Replace("{Username}", userToReset.UserName) .Replace("{Password}", newPassword) .Replace("{SignInUrl}", Url.RouteUrl("Home")); var message = new Discover.Mail.MailMessage(); message.To.Add(new Discover.Mail.MailAddress() { Address = model.SendToEmailAddress }); message.Subject = "Your Password Has Been Reset"; message.Body = mailContent; message.IsBodyHtml = true; mailer.Send(message); } db.SaveChanges(); } catch (Exception ex) { ModelState.AddModelError("ResetPassword", ex.Message); } } if (!ModelState.IsValid) { model.UserName = userToReset.UserName; } return(ModelState.IsValid ? Json(new { success = true }) : Json(new { success = false, formWithErrorMessages = this.RenderPartialViewToString(MVC.User.Views.ResetPassword, model, "ResetPassword") })); }
public async Task <IActionResult> ResetPassword(ResetPasswordFormModel model) { if (!ModelState.IsValid) { return(View(model)); } var user = await userManager.FindByEmailAsync(model.Email); if (user == null) { return(RedirectToAction(nameof(ResetPasswordConfirmation))); } var result = await userManager.ResetPasswordAsync(user, model.Code, model.Password); if (result.Succeeded) { return(RedirectToAction(nameof(ResetPasswordConfirmation))); } AddErrors(result); return(View()); }
public async Task <IActionResult> ResetPassword([FromRoute] string membershipId, [FromBody] ResetPasswordFormModel model) { var utilizer = this.GetUtilizer(); var resetPasswordToken = await this.userService.ResetPasswordAsync(utilizer, membershipId, model.UsernameOrEmailAddress); return(this.Ok(resetPasswordToken)); }