コード例 #1
0
ファイル: SessionDA.cs プロジェクト: rentianhua/AgileMVC
 public SessionData CheckSessionID(string sessionID, string userName)
 {
     int timeoutMinutes = SessionSettings.GetServiceSetting().SessionTimeout;
     DbHelper dbHelper = new DbHelper();
     DbCommand comannd = dbHelper.BuildDbCommand("P_IC_SESSIONS_CHECK_USER_NAME");
     dbHelper.AssignParameterValues(comannd, sessionID, userName, timeoutMinutes,DateTime.Now);
     dbHelper.ExecuteNonQuery(comannd);
     SessionData sessionData = new SessionData();
     sessionData.IsKilled = (bool)dbHelper.GetParameterValue(comannd, "p_is_killed");
     sessionData.IsSessionMatched = (bool)dbHelper.GetParameterValue(comannd, "p_user_session_matched");
     sessionData.IsTimeoutOrInvalid = (bool)dbHelper.GetParameterValue(comannd, "p_is_timeout");
     return sessionData;
 }
コード例 #2
0
ファイル: LoginProxy.cs プロジェクト: rentianhua/AgileMVC
 public bool Login(string ipAddress, string hostName, out MembershipUserInfo userInfo, out SessionData sessionData)
 {
     return this.Channel.Login(ipAddress, hostName, out userInfo, out sessionData);
 }
コード例 #3
0
 public DataRow GetLogInfo(string userName, string ipAddress, string hostName, out SessionData sessionData)
 {
     return this._sessionDA.GetLogInfo(userName, ipAddress, hostName, out sessionData);
 }
コード例 #4
0
ファイル: SessionDA.cs プロジェクト: rentianhua/AgileMVC
        public DataRow GetLogInfo(string userName, string ipAddress, string hostName, out SessionData sessionData)
        {
            //Not use this.Helper to avoid to insert log, because the method will be called by UserNameExtractionCallHanlders
            DbHelper dbHelper = new DbHelper();
            DataTable table = new DataTable();

            string sessionID = AppContext.Current.SessionID;
            if (string.IsNullOrEmpty(sessionID))
            {
                sessionID = Guid.NewGuid().ToString();
            }

            int timeoutMinutes = SessionSettings.GetServiceSetting().SessionTimeout;
            dbHelper.Fill(table, "P_IC_USER_INFO_FOR_LOGIN", userName, sessionID, DateTime.Now,
               DateTime.Now, ipAddress, hostName, timeoutMinutes, DateTime.Now);

            TimeSpan refreshInterval = new TimeSpan(0, 0, (int)(SessionSettings.GetServiceSetting().RefreshInterval * 60));
            TimeSpan timeoutInterval = new TimeSpan(0, 0, (SessionSettings.GetServiceSetting().SessionTimeout * 60));
            sessionData = new SessionData { SessionID = sessionID, RefreshInterval = refreshInterval, SessionTimeoutInterval = timeoutInterval };

            return (table.Rows.Count == 0) ? null : table.Rows[0];
        }
コード例 #5
0
        private static void SetContext(string hostName, string ipAddress, MembershipUserInfo userInfo, SessionData sessionData)
        {
            //Set the contextual user name and Last Login Time.
            AppContext.Current.UserName = userInfo.UserName;
            AppContext.Current.UserID = userInfo.UserID;
            if (sessionData != null)
            {
                AppContext.Current.SessionID = sessionData.SessionID;
                AppContext.Current.SessionRefreshInterval = sessionData.RefreshInterval.TotalSeconds.ToString();
                AppContext.Current.SessionTimeoutInterval = sessionData.SessionTimeoutInterval.TotalSeconds.ToString();
            }
            else
            {
                AppContext.Current.SessionID = string.Empty;
                AppContext.Current.SessionRefreshInterval = string.Empty;
                AppContext.Current.SessionTimeoutInterval = string.Empty;
            }

            //Notice HiiPBatchJobBase has similiar codes.
            AppContext.Current.UserRoles = string.Join(",", userInfo.Roles);
            AppContext.Current.IPAddress = ipAddress??"";
            AppContext.Current.HostName = hostName??"";
            AppContext.Current.LastLoginDate = userInfo.LastLoginDate;
            // COMMENT: Migirate last login date into AppContext
            AuthenticationManager.LastLoginDate = userInfo.LastLoginDate;
            //AppContext.Current.Organization = userInfo.Organization??"";
            AppContext.Current.FullName = userInfo.FullName;
            AppContext.Current.Office = userInfo.Office??"";
            AppContext.Current.OfficeID = userInfo.OfficeID ?? "";
            //TODO, no confirmation for 'GraphicArea'
            AppContext.Current.GraphicArea = "Victoria";
            Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(userInfo.UserName), userInfo.Roles);
        }