public async Task <IActionResult> ResetPassword(ResetPasswordViewModels resetPasswordViewModels) { if (ModelState.IsValid) { var user = await userManager.FindByEmailAsync(resetPasswordViewModels.Email); if (user != null) { var result = await userManager.ResetPasswordAsync(user, resetPasswordViewModels.Token, resetPasswordViewModels.Password); if (result.Succeeded) { ViewBag.Title = "Reset password successful"; ViewBag.Message = "You will be redirected to our homepage."; return(View("Successful")); } ViewBag.Title = "Reset password failed"; ViewBag.Message = "Process failed"; return(View("Successful")); } return(View("ResetPasswordConfirmation")); } return(View(resetPasswordViewModels)); }
public async Task <IActionResult> ResetPassword(ResetPasswordViewModels model) { if (ModelState.IsValid) { var user = await userManager.FindByEmailAsync(model.Email); if (user != null) { var result = await userManager.ResetPasswordAsync(user, model.Token, model.ConfirmPassword); if (result.Succeeded) { return(View("ResetPasswordConfirmation")); } foreach (var error in result.Errors) //in case there are errors on the input { ModelState.AddModelError("", error.Description); } return(View(model)); // this will re-render the page, but with the issues that are on the input } return(View("ResetPasswordConfirmation")); } return(View(model)); }
public void SendPasswordResetEmail(ResetPasswordViewModels resetPasswordViewModels) { // initializing message queue Message message = new Message(); MessageQueue msMq = null; const string queueName = @".\private$\TestQueue"; try { // MailMessage class is present is System.Net.Mail namespace MailMessage mailMessage = new MailMessage("*****@*****.**", resetPasswordViewModels.Email); Guid guid = Guid.NewGuid(); // StringBuilder class is present in System.Text namespace StringBuilder sbEmailBody = new StringBuilder(); sbEmailBody.Append("Dear " + resetPasswordViewModels.UserName + ",<br/><br/>"); sbEmailBody.Append("Please click on the following link to reset your password"); sbEmailBody.Append("<br/>"); sbEmailBody.Append(this.appSettings.ForgetLink + guid.ToString()); sbEmailBody.Append("<br/><br/>"); sbEmailBody.Append("<b>BridgeIt</b>"); mailMessage.IsBodyHtml = true; mailMessage.Body = sbEmailBody.ToString(); mailMessage.Subject = "Reset Your Password"; message.Body = mailMessage; message.Recoverable = true; message.Formatter = new BinaryMessageFormatter(); SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587); smtpClient.Credentials = new System.Net.NetworkCredential() { UserName = "******", Password = "******" }; smtpClient.EnableSsl = true; // creating directory in msmq if (!MessageQueue.Exists(queueName)) { msMq = MessageQueue.Create(queueName); } else { msMq = new MessageQueue(queueName); } // sending smtp client to the message queue try { msMq.Send(message); } finally { smtpClient.Send(mailMessage); //closing the message queue services msMq.Close(); } } catch (Exception ex) { throw ex; } }