public ActionResult ResetAccount(ResetAccountModel model) { string recaptchaprivatekey = BgResources.Recaptcha_PrivateKeyHttp; try { if (!ReCaptcha.Validate(privateKey: recaptchaprivatekey)) { ModelState.AddModelError("recaptcha", Resources.AppMessages.Error_Recaptcha); } } catch (Exception) { ModelState.AddModelError("recaptcha", Resources.AppMessages.Error_Recaptcha_Key); } if (ModelState.IsValid) { User user = AccountServices.FindUser(usr => usr.Email == model.Email); if (user == null) { ModelState.AddModelError("Email", Resources.AppMessages.Error_Email_Not_Exist); return(View(model)); } try { string token = null; token = CodeFirstSecurity.GeneratePasswordResetToken(user.Username, tokenExpirationInMinutesFromNow: 1440); SmtpClient client = new SmtpClient { Host = BgResources.Email_Server, Port = Int32.Parse(BgResources.Email_SmtpPort), EnableSsl = BgResources.Email_SSL, Credentials = new NetworkCredential(BgResources.Email_UserName, BgResources.Email_Password) }; UserMailer.PasswordReset(token, user).Send(new SmtpClientWrapper { InnerSmtpClient = client }); ViewBag.Email = model.Email; return(View("CompleteResetAccount")); } catch (InvalidOperationException ex) { ModelState.AddModelError("UserName", ex.Message); } catch (Exception ex) { throw new SmtpException(Resources.AppMessages.Error_SendMail); } } return(View(model)); }
public ActionResult ForgotPassword(string email) { int UserId = 0; try { // validate email // UserId = WebSecurity.GetUserId(email); if (!WebSecurity.UserExists(email)) { @ViewBag.Message = "<div class=\"alert alert-danger\">Votre compte n'est pas valide</div>"; return(View()); } UserId = WebSecurity.GetUserId(email); if (!OAuthWebSecurity.HasLocalAccount(UserId)) { @ViewBag.Message = "<div class=\"alert alert-danger\">Votre compte est un compte externe. Vous ne pouvez pas changer votre password sur notre site.</div>"; return(View()); } // generate token string token = WebSecurity.GeneratePasswordResetToken(email, 1440); //send email _welcomeMailer.PasswordReset(email, token).Send(); } catch (InvalidOperationException exp) { throw exp; } catch (Exception exp) { @ViewBag.Message = "<div class=\"alert alert-danger\">Une erreur a été pendant la réinitialisation de votre mot de passe.</div>"; return(View()); } @ViewBag.Message = "<div class=\"alert alert-danger\">La réinitialisation de votre mot de passe a bien été prise en compte.Nous avons envoyé par courrier électronique des instructions pour configurer votre mot de passe à l'adresse e-mail que vous avez soumis. Vous devriez le recevoir sous peu.</div>"; return(View()); }
public ActionResult ForgotPassword(ForgotPasswordModel forgotPasswordModel) { if (ModelState.IsValid) { var passwordResetRequest = new PasswordResetRequestCommand(forgotPasswordModel.Email); var result = ExecuteCommand(passwordResetRequest); if (result) { _userMailer.PasswordReset(passwordResetRequest.Name, passwordResetRequest.Token, forgotPasswordModel.Email).Send(); return(View("ForgotPasswordMailSent")); } else { ModelState.AddModelError(string.Empty, "We couldn't find an account with the given email address. Please check the email address."); } } return(View(forgotPasswordModel)); }
public ActionResult ResetPassword(ResetPasswordModel model) { UserProfile user = repository.Users.FirstOrDefault(u => u.UserName == model.UserName); string emailAddress = user == null ? null : user.Email; try { if (!string.IsNullOrEmpty(emailAddress)) { string confirmationToken = WebSecurity.GeneratePasswordResetToken(model.UserName); userMailer.PasswordReset(emailAddress, model.UserName, confirmationToken).Send(); logger.Info("Send reset password email to \"" + model.UserName + "\""); return(RedirectToAction("ResetPasswordStepTwo")); } } catch (Exception) { } return(RedirectToAction("InvalidUserName")); }