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()); }