【发布时间】:2010-10-26 16:33:07
【问题描述】:
ASP.NET 中的默认会话超时值是多少?
【问题讨论】:
标签: asp.net session timeout asp.net-2.0
ASP.NET 中的默认会话超时值是多少?
【问题讨论】:
标签: asp.net session timeout asp.net-2.0
根据MSDN是20分钟
来自 MSDN:
可选的 TimeSpan 属性。
指定会话在被放弃之前可以空闲的分钟数。对于进程内和状态服务器模式,超时属性不能设置为大于 525,601 分钟(1 年)的值。 会话超时配置设置仅适用于 ASP.NET 页面。更改会话超时值不会影响 ASP 页的会话超时。同样,更改 ASP 页的会话超时不会影响 ASP.NET 页的会话超时。 默认为 20 分钟。
【讨论】:
这取决于配置或程序更改。
因此,检查当前值最可靠的方法是在运行时通过代码。
查看 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"]?
Timeout 属性值以分钟为单位
【讨论】:
默认值为 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>
【讨论】:
会话的默认有效期为 20 分钟。
您可以更新会话状态并配置超时下的分钟数
<sessionState
timeout="30">
</sessionState>
【讨论】: