ASP.Net-会话超时过期后会发生什么

ASP.Net-会话超时过期后会发生什么,asp.net,session-variables,Asp.net,Session Variables,我是ASP.Net的新手,我有一个基本问题。我试图找到答案,但失败了 我使用session变量在我的web应用程序中的页面中携带记录的用户ID if (Session["LoggedUserKey"] == null) { Session.Add("LoggedUserKey", UserID); } else { Session["LoggedUserKey"] = UserID; } 我不确定会话超时过期后会发生什么?我会丢失我的用户ID吗?当我询问会话变量

我是ASP.Net的新手,我有一个基本问题。我试图找到答案,但失败了

我使用session变量在我的web应用程序中的页面中携带记录的用户ID

 if (Session["LoggedUserKey"] == null)
 {
     Session.Add("LoggedUserKey", UserID);
 }
 else
 {
     Session["LoggedUserKey"] = UserID;
 }
我不确定会话超时过期后会发生什么?我会丢失我的用户ID吗?当我询问会话变量时,会话超时是否会延长,如:

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["LoggedUserKey"] == null)
    {
         Response.Redirect("~/Login.aspx");
         return;
    }
}

当会话超时时,您的会话已过期。您可以在web.config中将会话超时作为

<sessionState timeout="60"></sessionState>


然后会话将在60分钟后过期。您可以在此中指定自定义时间。会话过期时,您根本无法获取用户ID。例如,bannking站点的会话超时时间只有几分钟。在此之后,如果您没有在会话超时后的时间内向服务器发送任何请求,则必须启动新会话。会话超时时,您的会话已过期,您可以在web.config中将会话超时设置为

<sessionState timeout="60"></sessionState>


然后会话将在60分钟后过期。您可以在此中指定自定义时间。会话过期时,您根本无法获取用户ID。例如,bannking站点的会话超时时间只有几分钟。在此之后,如果您没有在会话超时后的时间内向服务器发送任何请求,则必须启动新会话。您正在检查
LoggedUserkey
是否为
null
。。如果您正在添加
UserId
,那么您可能必须从文本框中获取该用户id到
LoggedUserkey
。 其他部分的目的是什么?当
LoggedUserkey
已经有
UserId
时,或者为什么要再次添加
UserId
?会话过期时,您已经丢失了
UserId

第二个代码是有意义的。。 一旦会话过期。(默认情况下,20分钟后) 在页面加载时,如果
会话[“LoggedUserKey”]==null
则您正在将用户重定向到Login.aspx页面


还要注意,每次与服务器交互时都会重置超时会话。例如刷新页面或与服务器交互的任何活动。

您正在检查
LoggedUserkey
是否为
null
。。如果您正在添加
UserId
,那么您可能必须从文本框中获取该用户id到
LoggedUserkey
。 其他部分的目的是什么?当
LoggedUserkey
已经有
UserId
时,或者为什么要再次添加
UserId
?会话过期时,您已经丢失了
UserId

第二个代码是有意义的。。 一旦会话过期。(默认情况下,20分钟后) 在页面加载时,如果
会话[“LoggedUserKey”]==null
则您正在将用户重定向到Login.aspx页面


还要注意,每次与服务器交互时都会重置超时会话。例如刷新页面或与服务器交互的任何活动。

当会话过期或会话超时时,将引发global.asax中的
会话结束
事件(DB处理会话时除外),并最终清除会话集合

如果任何对象未持有对会话集合中任何值的引用,则GC将收集它。但是,关于GC将在何时删除这些对象,我们不能说得太多

另外,关于会话超时是否延长,
超时
表示当前会话将被放弃之前必须经过的当前分钟数,前提是不再从客户端接收请求。可以通过编程方式更改此值,这样当需要执行更重要的操作时,您就有机会使会话集合保留更长的时间


所以,结论是,当用户在超时时间之前执行某些活动时,会话确实会延长。如果用户在超时后执行某些活动,会话肯定会过期,用户将被重定向到登录页面,或者根据您的设置执行相应的后续步骤。

当会话过期或会话超时时,将引发global.asax中的
会话结束
事件(由DB处理会话时除外)会话集合最终被清除

如果任何对象未持有对会话集合中任何值的引用,则GC将收集它。但是,关于GC将在何时删除这些对象,我们不能说得太多

另外,关于会话超时是否延长,
超时
表示当前会话将被放弃之前必须经过的当前分钟数,前提是不再从客户端接收请求。可以通过编程方式更改此值,这样当需要执行更重要的操作时,您就有机会使会话集合保留更长的时间


所以,结论是,当用户在超时时间之前执行某些活动时,会话确实会延长。如果用户在超时后执行某些活动,会话肯定会过期,用户将被重定向到登录页面,或者根据您的设置执行相应的下一步操作。

会话过期后,您将丢失LoggedUserKey中的userid值。会话过期后,您将丢失LoggedUserKey中的userid值。因此,当向服务器发送请求时,会话将丢失生存期是否重置为定义值?是会话超时是根据上次发送到服务器的请求计算的。因此,当某些请求发送到服务器时,会话生存期将重置为定义值?是会话超时是根据上次发送到服务器的请求计算的。