1

我在我的 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 分钟后过期,即使我同时正在访问它的数据。

4

1 回答 1

3

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

您可以添加一个名为“WhenToTimeout”的会话变量,将其设置为从现在起 5 分钟。只做一次。然后,当当前时间晚于该时间时-做您需要做的事情(将它们注销,...)

于 2013-04-12T13:49:11.070 回答