Ejemplo n.º 1
0
        public ActionResult ShowLogin()
        {
            if (Session["LoginInfo"] != null)
            {
                return(ClientRedirect("MainFrameLoggedIn"));
            }
            var m = new LoginAttemptViewModel()
            {
                CorpCode = "1",
                Code     = "admin",
                Password = "******"
            };

            return(ForView("Login", m));
        }
Ejemplo n.º 2
0
        public ActionResult Login(LoginAttemptViewModel attempt)
        {
            if (Session["LoginInfo"] != null)
            {
                return(ClientRedirect("MainFrameLoggedIn"));
            }

            var loginUser = AdminBD.GetLoginUser(attempt.Code, attempt.Password);

            if (loginUser == null)
            {
                SetViewMessage("Login_Wrong");
                return(ClientShowMessage());
            }
            if (!loginUser.IsActive)
            {
                SetViewMessage("Login_IsNotActive");
                return(ClientShowMessage());
            }
            var loginMark = Request.Cookies["LoginMark"];

            if (loginUser.LoginMark != null)//检查本次登录是否为上次的登录的会话延续
            {
                if (loginMark == null)
                {
                    return(ClientShowMessage("Login_AlreadyIn"));
                }
                var lastsessionId = loginMark["lastsessionId"];
                if (lastsessionId != loginUser.LoginMark)
                {
                    return(ClientShowMessage("Login_AlreadyIn"));
                }
            }

            loginMark                  = new HttpCookie("LoginMark");
            loginMark.HttpOnly         = true;
            loginMark["lastsessionId"] = Session.SessionID;
            loginMark.Expires          = DateTime.Now.AddDays(2);
            Response.Cookies.Add(loginMark);

            loginUser.LoginMark = Session.SessionID;
            var loginInfo = new LoginInfoViewModel();

            loginInfo.LoginUser = loginUser;
            loginInfo.LoginCorp = loginUser.Dept.Corp;
            var tmp = loginInfo.LoginCorp.Name;//make proxy load the real entity
            var i   = 0;

            foreach (var func in loginInfo.LoginCorp.Funcs)
            {
                loginInfo.AddCorpFuncCode(func.Code);
            }
            foreach (var func in loginUser.Dept.Funcs)
            {
                loginInfo.AddDeptFuncCode(func.Code);
            }
            foreach (var func in loginUser.Funcs)
            {
                loginInfo.AddUserFuncCode(func.Code);
            }
            Session["LoginInfo"] = loginInfo;
            return(ClientRedirect("MainFrameLoggedIn"));
        }