public ActionResult ChangePassword() { if (IsPostRequest) { var oldPassword = Request.Form["OldPassword"].Trim(); var newPassword = Request.Form["NewPassword"].Trim(); var obj = new AjaxModel(); var user = Membership.GetUser(User.Identity.Name); obj.Status = user.ChangePassword(oldPassword, newPassword); if (obj.Status) { obj.Message = "Bạn đã thay đổi mật khẩu thành công"; obj.RedirectUrl = string.Format("/{0}/profile", User.Identity.Name); } else { obj.Message = "Bạn không thể thay đổi mật khẩu, hãy thử lại"; } return Json(obj); } ViewData[Constants.ViewData.Title] = string.Format("{0} - {1}", MyLifeContext.Settings.Name, Messages.ChangePassword); return View("ChangePassword", MyLifeContext.Settings.Theme); }
protected override void OnException(ExceptionContext filterContext) { if (IsPostRequest) { var obj = new AjaxModel {Message = filterContext.Exception.Message}; if (filterContext.Exception.InnerException != null) { obj.Message += Environment.NewLine + filterContext.Exception.InnerException.Message; } filterContext.Result = Json(obj); filterContext.ExceptionHandled = true; } else { base.OnException(filterContext); } }
public ActionResult ResetPassword() { if (IsPostRequest) { var username = Request.Form["user.UserName"].ToLowerInvariant(); var obj = new AjaxModel(); var user = Membership.GetUser(username); if (user == null) { obj.Message = "Tên đăng nhập này không tồn tại"; goto Return; } if (user.IsLockedOut) { obj.Message = "Tài khoản của bạn đã bị khóa, hãy liên hệ với người quản lý"; obj.RedirectUrl = "/contact"; goto Return; } var password = user.ResetPassword(); if (string.IsNullOrEmpty(password)) { obj.Message = "Có lỗi trong quá trình khởi tạo lại mật khẩu"; goto Return; } obj.Status = true; obj.Message = "Mật khẩu đã được khởi tạo và gửi về hòm mail của bạn"; obj.RedirectUrl = "/login"; var tpl = new XmlMailTemplate(Server.MapPath("App_Data/ResetPassword.xml")) { Data = new { user.UserName, Password = password } }; tpl.Process(); Net.Mail.SendMail.Send(user.Email, tpl.Subject, tpl.Body); Return: return Json(obj); } ViewData[Constants.ViewData.Title] = MyLifeContext.Settings.Name + " - " + Messages.ResetPassword; return View("ResetPassword", MyLifeContext.Settings.Theme); }
public ActionResult Register() { if (IsPostRequest) { var username = Request.Form["UserName"].ToLowerInvariant(); var password = Request.Form["Password"]; var email = Request.Form["Email"]; var obj = new AjaxModel(); // Deny user name in bad list var streamReader = new StreamReader(MyLifeContext.WorkingFolder + "App_Data\\BlockUsers.txt"); var words = streamReader.ReadToEnd().Replace(Environment.NewLine, " ").Split(new[] {" "}, StringSplitOptions.RemoveEmptyEntries); streamReader.Close(); if (new List<string>(words).Contains(username) || !Regex.Match(username, Constants.Regulars.User).Success) { obj.Message = string.Format("Tên đăng nhập '{0}' không được chấp nhận", username); goto Return; } MembershipCreateStatus status; var user = Membership.CreateUser(username, password, email, null, null, true, out status); switch (status) { case MembershipCreateStatus.Success: OnUserRegisted(user); obj.Status = true; obj.Message = "Bạn đã đăng ký thành công."; obj.RedirectUrl = "/" + user.UserName; goto Return; case MembershipCreateStatus.DuplicateEmail: obj.Message = "Địa chỉ email này đã có người sử dụng."; goto Return; case MembershipCreateStatus.DuplicateUserName: obj.Message = "Tên đăng nhập này đã có người sử dụng."; goto Return; case MembershipCreateStatus.InvalidEmail: obj.Message = "Địa chỉ email không hợp lệ"; goto Return; case MembershipCreateStatus.InvalidPassword: obj.Message = "Mật khẩu của bạn quá ngắn hoặc quá đơn giản"; goto Return; default: obj.Message = "Hệ thống không chấp nhận việc đăng ký thành viên, bạn hãy thử lại sau"; goto Return; } Return: return Json(obj); } ViewData[Constants.ViewData.Title] = MyLifeContext.Settings.Name + " - Đăng ký tài khoản"; return View("Register", MyLifeContext.Settings.Theme); }
public ActionResult Login() { if (IsPostRequest) { var username = Request.Form["UserName"].ToLowerInvariant(); var password = Request.Form["Password"]; var returnUrl = Request.Form["ReturnUrl"]; var obj = new AjaxModel(); if (Membership.ValidateUser(username, password)) { HttpContext.User = new GenericPrincipal(new GenericIdentity(username), null); FormsAuthentication.SetAuthCookie(username, false); if (string.IsNullOrEmpty(returnUrl)) { returnUrl = string.Format("/{0}", username); } obj.Status = true; obj.RedirectUrl = returnUrl; obj.Message = "Bạn đã đăng nhập thành công"; } else { obj.Message = "Tên đăng nhập hoặc mật khẩu của bạn không hợp lệ"; } return Json(obj); } ViewData[Constants.ViewData.Title] = MyLifeContext.Settings.Name + " - " + Messages.Login; return View("Login", MyLifeContext.Settings.Theme); }