Esempio n. 1
0
        public virtual ActionResult ForgotPassword(ForgotPasswordViewModel viewModel)
        {
            if(string.IsNullOrEmpty(viewModel.Email))
                return View(new ForgotPasswordViewModel());

            using (var context = new TTTEntities())
            {
                var user = context.tblaccesses.Where(a => a.Email == viewModel.Email).SingleOrDefault();

                if (user == null)
                {
                    viewModel.ErrorMessage = "Email account does not exist.";
                    return View(viewModel);
                }

                var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                var random = new Random();
                viewModel.NewPassword = new string(
                    Enumerable.Repeat(chars, 8)
                              .Select(s => s[random.Next(s.Length)])
                              .ToArray());

                user.Password = Util.GetMD5Hash(viewModel.NewPassword);
                user.UpdateDT = DateTime.Now;

                context.SaveChanges();
            }

            SendForgotPasswordEmail(viewModel);

            return View("ForgotPasswordSuccess", viewModel);
        }
Esempio n. 2
0
        private void SendForgotPasswordEmail(ForgotPasswordViewModel viewModel)
        {
            var body = this.RenderViewToString(Views.ViewNames.ResetPassword, viewModel);
            var message = new MailMessage
            {
                Subject = "Tote To Toe Reset Password",
                IsBodyHtml = true,
                Body = body
            };
            message.To.Add(viewModel.Email);

            using (var smtpClient = new SmtpClient())
            {
                smtpClient.Send(message);
            }
        }