public ActionResult Login(AccountLoginViewModel model) { ResponseModel response = new ResponseModel(); if (!ModelState.IsValid) { response.Success = false; response.Msg = "请认真检查数据是否复合要求"; return Json(response); } if (Session["code"] == null) { response.Success = false; response.Msg = "验证码已过期,请重新获取验证码"; return Json(response); } if (Session["code"] != null && !Session["code"].ToString().Equals(model.ValidateCode)) { response.Success = false; response.Msg = "验证码输入错误,请重输入验证码"; return Json(response); } Account account = accountService.AccountLoginByUserName(model.LoginName, model.Pwd); AccountLoginStatusModel loginmodel = new AccountLoginStatusModel(); loginmodel.ID = account.Id; loginmodel.Name = account.Name; loginmodel.Email = account.Email; FormsAuthentication.SetAuthCookie(JsonConvert.SerializeObject(loginmodel), true); response.Success = true; response.Msg = "登录成功"; response.RedirectUrl = "/"; return Json(response); }
protected override void OnAuthentication(System.Web.Mvc.Filters.AuthenticationContext filterContext) { base.OnAuthentication(filterContext); try { string action = filterContext.RouteData.Values["action"].ToString(); string controller = filterContext.RouteData.Values["controller"].ToString(); if (string.Equals(controller, "home", StringComparison.OrdinalIgnoreCase) && string.Equals(action, "index", StringComparison.OrdinalIgnoreCase)) { if (Request.IsAuthenticated) { AccountLoginStatusModel account = JsonConvert.DeserializeObject<AccountLoginStatusModel>(User.Identity.Name); filterContext.HttpContext.Items.Add("currentUser", account); LoginAccount = account; } return; } if (string.Equals(action, "login", StringComparison.OrdinalIgnoreCase)) { return; } if (string.Equals(action, "logout", StringComparison.OrdinalIgnoreCase)) { return; } if (string.Equals(action, "register", StringComparison.OrdinalIgnoreCase)) { return; } if (string.Equals(action, "ValideEmail", StringComparison.OrdinalIgnoreCase)) { return; } if (string.Equals(action, "code", StringComparison.OrdinalIgnoreCase)) { return; } if (Request.IsAuthenticated) { AccountLoginStatusModel account = JsonConvert.DeserializeObject<AccountLoginStatusModel>(User.Identity.Name); filterContext.HttpContext.Items.Add("currentUser", account); LoginAccount = account; } else { Response.Redirect("/Account/Login"); filterContext.Result = new EmptyResult(); } } catch (Exception ex) { Response.Redirect("/Account/Login"); filterContext.Result = new EmptyResult(); throw ex; } }
public ActionResult Register(AccountRegisterViewModel model) { ResponseModel response = new ResponseModel(); if (!ModelState.IsValid) { response.Success = false; response.Msg = "请认真检查数据是否复合要求,请重新注册"; return Json(response); } if (Session["code"] == null) { response.Success = false; response.Msg = "验证码已过期,请重新获取验证码"; return Json(response); } if (Session["code"] != null && !Session["code"].ToString().Equals(model.ValidateCode)) { response.Success = false; response.Msg = "验证码输入错误,请重输入验证码"; return Json(response); } #region Register Account account = Mapper.Map<Account>(model); account.Password = model.Password.ToMd5String(); account.Sex = Core.CustomEnum.Sex.Male; accountService.Add(account); unitOfWork.Commit(); response.Success = true; response.Msg = "欢迎您的加入!"; #endregion #region Login AccountLoginStatusModel loginmodel = new AccountLoginStatusModel(); loginmodel.ID = account.Id; loginmodel.Name = account.Name; loginmodel.Email = account.Email; FormsAuthentication.SetAuthCookie(JsonConvert.SerializeObject(loginmodel), true); #endregion return Json(response); }