示例#1
0
        public async Task <ActionResult> ForgotPassword(ForgotPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (var db = new SATEntities())
                {
                    var user = db.Users.FirstOrDefault(a => a.Email == model.Email && (a.IsDeleted == null || a.IsDeleted == false));
                    if (user != null)
                    {
                        user.ResetPasswordToken = Models.Utils.Instance.RandomString(10);

                        db.Entry <User>(user).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();
                        var          resetUrl     = string.Format("{0}/Account/ResetPassword", Request.Url.GetLeftPart(UriPartial.Authority));
                        MailServices mailServices = new MailServices();
                        var          body         = string.Format("Chào bạn, \r\n Một yêu cầu thiết lập lại mật khẩu đã được gửi đến địa chỉ {0}.\r\n Đây là mã xác thực: {2}\r\n Dưới đây là link thiết lập lại mật khẩu \r\n " +
                                                                  "{1}" + "\r\n Nếu không phải bạn gửi yêu cầu, làm ơn bỏ qua thư này.", model.Email, resetUrl, user.ResetPasswordToken);
                        var mailModel = new MailModel {
                            Subject = "Thiết lập lại mật khẩu", Body = body, To = model.Email
                        };
                        await mailServices.SendAsync(mailModel);

                        ViewBag.ResponseMessage = "Yêu cầu thiết lập lại mật khẩu của bạn đã được gửi đi,\r\n vui lòng kiểm tra thư điện tử của bạn.";
                    }
                }
            }
            return(View());
        }