是否可以使用ASP.net中的sessionState获取REMAINING会话超时
这是我的webconfig文件中的sessionState代码。
<sessionState
mode="SQLServer"
allowCustomSqlDatabase="true"
sqlConnectionString="my connection here"
timeout="100">
</sessionState>
由于
答案 0 :(得分:0)
我知道这是一个老帖子,但没有正确答案,我需要回答这个问题。
我在某种程度上使用了Ashwin的答案并使其有效!
您需要创建会话[“SessionStart”]变量,无论您何时开始会话并开始会话。从那里它非常直接,我返回秒作为值,所以我可以使用javascript将秒改为hh:mm:ss,我还包括一个string.format将秒转换为hh:mm:ss。
// Get the session in minutes and seconds
HttpSessionState session = HttpContext.Current.Session;//Return current session
DateTime? sessionStart = session["SessionStart"] as DateTime?;//Get DateTime object SessionStart
//Check if session has not expired
if (sessionStart.HasValue)
{
TimeSpan timepassed = DateTime.Now - sessionStart.Value;//Get the time passed since the session was created
int TimeOut = (session.Timeout * 60) - Convert.ToInt32(remaining.TotalSeconds);
int h = (TimeOut / 3600);
int m = ((TimeOut / 60) % 60);
int s = TimeOut % 60;
SessionTimeoutValue.InnerText += TimeOut; // or use the string.format below.
//string.Format("{0}:{1}:{2}",
// h,
// m,
// s);
}
答案 1 :(得分:-5)
是的,您可以使用以下代码获取剩余时间
HttpSessionState session = HttpContext.Current.Session;//Return current sesion
DateTime? sessionStart = session[SessionKeys.SessionStart] as DateTime?;//Convert into DateTime object
if(sessionStart.HasValue)//Check if session has not expired
TimeSpan remaining = sessionStart.Value-DateTime.Now ;//Get the remaining time