public ActionResult ShowLogin() { if (Session["LoginInfo"] != null) { return(ClientRedirect("MainFrameLoggedIn")); } var m = new LoginAttemptViewModel() { CorpCode = "1", Code = "admin", Password = "******" }; return(ForView("Login", m)); }
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")); }