Asp.net会话超时是否会自动延长?

时间:2013-04-12 12:59:08

标签: asp.net asp.net-session

我在asp.net Web应用程序中定义了会话:

<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分钟到期,即使我在此期间从中访问数据。

1 个答案:

答案 0 :(得分:3)

我相信每次对服务器执行任何操作时都会重置超时会话。因此导致回发将重置计时器。

您可以添加一个名为'WhenToTimeout'的会话变量,您将其设置为5分钟。只做一次。然后,当前时间晚于此时 - 执行您需要做的事情(将其记录下来,......)