Example #1
0
        public ActionResult ResetPassword(ResetPasswordViewModel userProfile)
        {
            string emailAddress;
            using (var repository = new UserProfileRepository())
            {
                emailAddress = repository.GetEmailForUser(userProfile.Username);
                //Om email-addressen inte finns i databasen returneras null.
                if (!string.IsNullOrWhiteSpace(emailAddress))
                {
                    string confirmationToken = WebSecurity.GeneratePasswordResetToken(userProfile.Username);
                    //Constructs the email to send.
                    var message = new MailMessage();
                    message.To.Add(new MailAddress(emailAddress));
                    message.Subject = "Återställning av lösenord till YH-admin";
                    message.IsBodyHtml = true;
                    string resetUrl = Url.Action("ResetPasswordConfirmation", "Account", new { id = confirmationToken }, Request.Url.Scheme);
                    message.Body = $"Ditt lösenord på YH-admin kommer att återställas<br/><br/>" +
                                   $"Följ denna länk för att återställa ditt lösenord: <br><a href=\"{resetUrl}\">{resetUrl}</a>";
                    //Sends the mail.
                    using (var smtp = new SmtpClient())
                    {
                        smtp.Send(message);
                        ViewBag.Email = emailAddress;
                        return View("ResetPasswordEmailSent");
                    }

                }
                //emailaddressen fanns inte i databasen. Då ska inget mail skickas.
                ModelState.AddModelError("", "Användarnamnet du angav finns inte");
                return View(userProfile);
            }
        }