public virtual ActionResult ForgotPassword(string email, bool captchaValid, string captchaErrorMessage)
{
if (!captchaValid)
{
ModelState.AddModelError("captcha", captchaErrorMessage);
}
if (ModelState.IsValid)
{
var user = YouConfDbContext.UserProfiles
.FirstOrDefault(x => x.Email == email);
if (user != null && user.UserId > 0 && OAuthWebSecurity.HasLocalAccount(user.UserId))
{
string token = WebSecurity.GeneratePasswordResetToken(user.UserName);
//Send them an email
UserMailer mailer = new UserMailer();
var mvcMailMessage = mailer.PasswordReset(user.Email, user.UserName, token);
var emailMessage = new SendEmailMessage()
{
Body = mvcMailMessage.Body,
To = user.Email,
Subject = "Password reset request"
};
SendQueueMessage(emailMessage);
return View("PasswordResetEmailSent");
}
}
return View();
}