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