ASP.NET MVC 应用程序中的 SessionState

SessionState in ASP.NET MVC Application

我有一个 ASP.NET MVC 应用程序。我有以下内容:

<sessionState timeout="60" />

我的问题是,如果用户进入一个页面并花费超过 60 分钟来填写页面上的所有字段,是否会构成超时?什么构成超时?用户是否需要浏览不同的页面才能避免超时?

简单的回答是 - 是的,一个人在同一页面上超过超时时间(在您的示例中为 60 分钟)会导致超时。

会话是服务器端的,因此如果在超时期限内没有向服务器发送请求 - 会话将过期并且所有保存的会话变量都将丢失。

让事情变得有点复杂,如果您的页面正在对服务器进行 AJAX 调用 - 这些可以使会话保持活动状态而无需导航到其他页面。

会话数据从上次请求开始保存 60 分钟。 因此,如果您访问某个页面并且某些内容已作为会话数据为您存储,它将在之后自动删除60 分钟,除非您在此时间段内提出新的请求。 您不应该尝试使用会话来长时间存储数据。