Exemple #1
0
        /// <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);
                }
            }
        }
Exemple #2
0
        /// <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);
        }