Exemple #1
0
        public ActionResult Login()
        {
            ViewBag.IsShowValidateCode = Convert.ToInt32(Session["LoginError"]) >= 3;
            //绑定错误信息
            ViewData.BindErrorMessage(ModelState);

            return(View());
        }
Exemple #2
0
        public ActionResult Login(LoginVM loginModel)
        {
            ViewBag.IsShowValidateCode = false;

            if (ModelState.IsValid)
            {
                bool validatecode = true;
                if (Session["LoginError"] != null && Convert.ToInt32(Session["LoginError"]) >= 3)
                {
                    if (TempData.ContainsKey(SecurityController.VALIDATECODE))
                    {
                        string code = TempData[SecurityController.VALIDATECODE].ToString();
                        validatecode = loginModel.ValidateCode == code;
                    }
                    else
                    {
                        validatecode = false;
                    }
                }

                if (validatecode)
                {
                    SysUserVM sysUser = _accountBizProcess.Login(loginModel.SysUserName, loginModel.PasswordHash);
                    if (sysUser != null)
                    {
                        UserInfo userInfo = sysUser.ToUserInfo();
                        FormsPrincipal <UserInfo> .Login(sysUser.UserName, userInfo, 30);

                        Session["LoginError"] = null;

                        //登录成功写cookie
                        var userNameCookie = new HttpCookie("username", sysUser.UserName);
                        userNameCookie.Expires = DateTime.Now.AddDays(365);
                        var rememberMeCookie = new HttpCookie("rememberme", loginModel.RememberMe.ToString().ToLower());
                        userNameCookie.Expires = DateTime.Now.AddDays(365);

                        Response.Cookies.Add(userNameCookie);

                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "用户名或者密码输入错误!");
                    }
                }
                else
                {
                    ModelState.AddModelError("ValidateCode", "验证码输入错误!");
                }
            }

            Session["LoginError"] = Session["LoginError"] == null ? 0 : Convert.ToInt32(Session["LoginError"]) + 1;
            if (Convert.ToInt32(Session["LoginError"]) >= 3)
            {
                ViewBag.IsShowValidateCode = true;
            }

            //绑定错误信息
            ViewData.BindErrorMessage(ModelState);

            return(View(loginModel));
        }