2013-04-12 25 views
1

我在我的asp.net web应用程序定义会话:Asp.net会话超时是否自动延伸?

<sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="5"> 
    <providers> 
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" /> 
    </providers> 
</sessionState> 

在应用程序中,我读/从/将数据保存到会话。

Session["userId"] = "UID123443"; 
string userId = Session["userId"].ToString() 

我的问题是,如果我读/写数据会话,是超时自动重新初始化?

如果是的话,有什么办法可以防止这种情况发生?例如,即使我同时从中访问数据,我也需要会话从5到5分钟过期。

回答

3

我相信每次你对服务器做任何事情都会重置超时会话。所以导致回发将重置计时器。

您可以添加一个名为'WhenToTimeout'的会话变量,该变量从现在开始设置为5分钟。只做一次。然后,当前时间晚于这个时间 - 做你需要做的事情(注销,...)