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; }
public bool Login(string ipAddress, string hostName, out MembershipUserInfo userInfo, out SessionData sessionData) { return this.Channel.Login(ipAddress, hostName, out userInfo, out sessionData); }
public DataRow GetLogInfo(string userName, string ipAddress, string hostName, out SessionData sessionData) { return this._sessionDA.GetLogInfo(userName, ipAddress, hostName, out sessionData); }
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]; }
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); }