Example #1
0
        public ActionResult PostLogin(FormCollection form)
        {
            string username   = form["username"];
            string password   = form["password"];
            bool   isremember = Convert.ToBoolean(form["isremember"]);

            if (username == "" || password == "")
            {
                return(Json(new
                {
                    Result = false,
                    Message = "账号密码不能为空!"
                }));
            }
            //result success Failure LockedOut
            LoginCheckResult result = LoginCheck.PasswordSignIn(username, password, this.SetCustomerCookie);

            if (result == LoginCheckResult.Success)
            {
                Customer   cus            = this.CurrentCustomer;
                var        userRole       = cus.CustomerType;//getrolebyid
                HttpCookie userRoleCookie = new HttpCookie("Role");
                switch (userRole)
                {
                case CustomerType.User:
                {
                    userRoleCookie.Value = "User";
                    if (isremember)
                    {
                        //加上remember password
                        HttpCookie rolelongCookie = Request.Cookies[".ASPXAUTH"];
                        rolelongCookie.Expires = DateTime.Now.AddDays(7);
                        Response.Cookies.Add(rolelongCookie);
                        userRoleCookie.Expires = DateTime.Now.AddDays(7);
                    }
                    Response.SetCookie(userRoleCookie);
                    return(Json(new
                        {
                            Result = true,
                            Message = "User"
                        }));
                }

                case CustomerType.SuperAdmin:
                {
                    userRoleCookie.Value = "SuperAdmin";
                    if (isremember)
                    {
                        //加上remember password
                        HttpCookie rolelongCookie = Request.Cookies[".ASPXAUTH"];
                        rolelongCookie.Expires = DateTime.Now.AddDays(7);
                        Response.Cookies.Add(rolelongCookie);
                        userRoleCookie.Expires = DateTime.Now.AddDays(7);
                    }
                    Response.SetCookie(userRoleCookie);
                    return(Json(new
                        {
                            Result = true,
                            Message = "SuperAdmin"
                        }));
                }

                case CustomerType.Admin:
                {
                    userRoleCookie.Value = "Admin";
                    if (isremember)
                    {
                        //加上remember password
                        HttpCookie rolelongCookie = Request.Cookies[".ASPXAUTH"];
                        rolelongCookie.Expires = DateTime.Now.AddDays(7);
                        Response.Cookies.Add(rolelongCookie);
                        userRoleCookie.Expires = DateTime.Now.AddDays(7);
                    }
                    Response.SetCookie(userRoleCookie);
                    return(Json(new
                        {
                            Result = true,
                            Message = "Admin"
                        }));
                }

                default: throw new ArgumentNullException("Can not find user type by id");
                }
            }
            else if (result == LoginCheckResult.LockedOut)
            {
                return(Json(new
                {
                    Result = false,
                    Message = "未经审核的用户或此账户已被冻结,请联系管理员!"
                }));
            }

            else if (result == LoginCheckResult.Failure)
            {
                return(Json(new
                {
                    Result = false,
                    Message = "用户名或密码错误"
                }));
            }
            else
            {
                return(Json(new
                {
                    Result = false,
                    Message = "some error happened when login"
                }));
            }
        }