什么是 ASP.NET 中的默认会话超时?

Posted

技术标签:

【中文标题】什么是 ASP.NET 中的默认会话超时?【英文标题】:What is default session timeout in ASP.NET? 【发布时间】:2010-10-26 16:33:07 【问题描述】:

ASP.NET 中的默认会话超时值是多少?

【问题讨论】:

【参考方案1】:

根据MSDN是20分钟

来自 MSDN:

可选的 TimeSpan 属性。

指定会话在被放弃之前可以空闲的分钟数。对于进程内和状态服务器模式,超时属性不能设置为大于 525,601 分钟(1 年)的值。 会话超时配置设置仅适用于 ASP.NET 页面。更改会话超时值不会影响 ASP 页的会话超时。同样,更改 ASP 页的会话超时不会影响 ASP.NET 页的会话超时。 默认为 20 分钟。

【讨论】:

【参考方案2】:

这取决于配置程序更改。 因此,检查当前值最可靠的方法是在运行时通过代码。

查看 HttpSessionState.Timeout 属性;默认值为 20 分钟。

您可以通过HttpContext 在 ASP.NET 中访问此属性:

this.HttpContext.Session.Timeout // ASP.NET MVC controller
Page.Session.Timeout // ASP.NET Web Forms code-behind
HttpContext.Current.Session.Timeout // Elsewhere

【讨论】:

我可以在检查int check = this.HttpContext.Session.Timeout; 时获得值 20,但我可以使用键设置会话超时吗?并检查特定键的会话超时,例如:Session["mykey"]? 对于那些没有点击 MSDN 链接的人,Timeout 属性值以分钟为单位【参考方案3】:
    会话的默认有效期为 20 分钟Cookie 的默认有效期为 30 分钟ViewState 的最大尺寸是页面尺寸的 25%

【讨论】:

【参考方案4】:

默认值为 20 分钟。 http://msdn.microsoft.com/en-us/library/h6bb9cz9(v=vs.80).aspx

<sessionState 
mode="[Off|InProc|StateServer|SQLServer|Custom]"
timeout="number of minutes"
cookieName="session identifier cookie name"
cookieless=
     "[true|false|AutoDetect|UseCookies|UseUri|UseDeviceProfile]"
regenerateExpiredSessionId="[True|False]"
sqlConnectionString="sql connection string"
sqlCommandTimeout="number of seconds"
allowCustomSqlDatabase="[True|False]"
useHostingIdentity="[True|False]"
stateConnectionString="tcpip=server:port"
stateNetworkTimeout="number of seconds"
customProvider="custom provider name">
<providers>...</providers>
</sessionState>

【讨论】:

【参考方案5】:

会话的默认有效期为 20 分钟。

您可以更新会话状态并配置超时下的分钟数

<sessionState 
timeout="30">
</sessionState>

【讨论】:

以上是关于什么是 ASP.NET 中的默认会话超时?的主要内容,如果未能解决你的问题,请参考以下文章

如何在过期前延长asp.net中的会话超时

ASP.NET Core 会话超时

ASP.NET 窗体身份验证超时和会话超时

IIS 会话超时与 ASP.NET 会话超时

asp.net cookie、身份验证和会话超时

ASP.NET 中的会话固定