/// <summary> /// 注册Session /// </summary> /// <param name="userID">用户名</param> /// <param name="password">密码</param> public void RegSession(string userID, string password) { string pwd = SafeHelper.EncryptDES(password, userID); string sessionId = string.Format("{0}.{1}", this.AppName, this.GetSessionID()); if (!SqlHelper.Exists <HrEmploy>(H => H.UserID == userID && H.PassWord == pwd)) { throw new Exception(string.Format("注册SessionID[{0}]失败", sessionId)); } if (!this.sessions.ContainsKey(sessionId)) { lock (lockObject) { HrEmploy info = DbFactory.DbSession.DbContext.Set <HrEmploy>().FirstOrDefault(H => H.UserID == userID && H.PassWord == pwd); SessionMode mode = new SessionMode { SessionID = sessionId, HrEmployee = info }; if (HttpContext.Current != null && HttpContext.Current.Session != null) { HttpContext.Current.Session[sessionId] = mode; } this.sessions.Add(sessionId, mode); } } }
/// <summary> /// 根据SessionID获取session中存储的数据 /// </summary> /// <param name="sessionID"></param> /// <returns></returns> public SessionMode GetSessionMode(string sessionID) { SessionMode mode = null; if (this.sessions.ContainsKey(sessionID)) { mode = this.sessions[sessionID] as SessionMode; } else if (HttpContext.Current != null && HttpContext.Current.Session != null) { var r = HttpContext.Current.Session[sessionID]; if (r != null) { mode = (r as SessionMode); } } if (mode == null) { throw AjaxException.ToException(ErrorCode.SErrorCode, "您的会话已超时, 请重新登录本系统."); } return(mode); }