我正在IIS 6.0中运行ASP.NET 2.0应用程序。我希望会话超时为60分钟,而不是默认的20分钟。我做了以下
- 设置
<sessionState timeout="60"></sessionState>
为web.config
。 - 在IIS管理器/网站属性/ASP.NET配置设置中将会话超时设置为60分钟。
- 在应用程序池属性/性能中将空闲超时设置为60分钟。
我仍然在20分钟的会话超时。我还有什么需要做的吗?
我正在IIS 6.0中运行ASP.NET 2.0应用程序。我希望会话超时为60分钟,而不是默认的20分钟。我做了以下
<sessionState timeout="60"></sessionState>
为web.config
。我仍然在20分钟的会话超时。我还有什么需要做的吗?
Answers:
您正在使用表单身份验证吗?
表单身份验证使用其自己的超时值(默认为30分钟)。表单身份验证超时会将用户发送到登录页面,而会话仍处于活动状态。这看起来像您的应用程序在会话超时时所给出的行为,从而很容易使另一个混淆。
<system.web>
<authentication mode="Forms">
<forms timeout="50"/>
</authentication>
<sessionState timeout="60" />
</system.web>
将表单超时设置为小于会话超时的时间可以为用户提供一个用于登录的窗口,而不会丢失任何会话数据。
在您的web.config文件中使用以下代码块。在此,默认会话超时为80分钟。
<system.web>
<sessionState mode="InProc" cookieless="false" timeout="80" />
</system.web>
将以下链接用于带有弹出警报消息的会话超时。
仅供参考:以上示例是通过devexpress弹出控件完成的,因此您需要使用常规弹出控件自定义/替换devexpress弹出控件。如果您使用devexpress,则无需自定义
您在machine.config中是否有任何可能生效的东西?在web.config中设置会话超时应该覆盖IIS或machine.config中的任何设置,但是,如果在应用程序的子文件夹中的某个位置有一个web.config文件,则该设置将覆盖应用程序根目录中的一个。
另外,如果我没记错的话,IIS中的超时只会影响.asp页,而不影响.aspx。您确定web.config中的会话代码正确吗?它看起来应该像这样:
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
stateNetworkTimeout="60"
sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI"
cookieless="false"
timeout="60"
/>
https://usefulaspandcsharp.wordpress.com/tag/session-timeout/
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH" timeout="60" slidingExpiration="true" />
</authentication>
<sessionState mode="InProc" timeout="60" />
由于ASP.Net core 1.0(vNext或其他名称)会话的实现方式有所不同。我改变了会话超时值Startup.cs
,void ConfigureServices
使用:
services.AddSession(options => options.IdleTimeout = TimeSpan.FromSeconds(42));
或者,如果您想使用该appsettings.json
文件,则可以执行以下操作:
// Appsettings.json
"SessionOptions": {
"IdleTimeout": "00:30:00"
}
// Startup.cs
services.AddSession(options => options.IdleTimeout = TimeSpan.Parse(Config.GetSection("SessionOptions")["IdleTimeout"]));
如果您要网站的会话超时而不是删除
<authentication mode="Forms">
<forms timeout="50"/>
</authentication>
web.config文件中的代码。