我正在开发ASP.Net MVC应用程序。使用SqlServer模式时会话超时不起作用
我们使用了sessionState模式SQLServer,并且我将超时设置为20分钟。
<sessionState mode="SQLServer"
sqlConnectionString="data source=127.0.0.1;user id=sa;password=sa"
cookieless="false"
timeout="2" />
在web配置中的代码是这样的。
我也设置了登录页面。
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
现在,当会话过期时,我想导航用户登录页面。
我检查了很多东西,但我无法理解它是如何工作的?以及如何导航会话过期的用户登录页面?
它在InProc模式下工作。我以相同的方式使用它,并且用户被重定向到会话过期时登录。
但我无法在SQLServer模式下完成同样的事情。
我无法理解我错过了什么?
我检查Session State也发现Session timeout handled in SQLServer Mode
编辑: - 我想重定向用户每当另一个HTTP请求的是会话中执行到登录页面。
会话使用*滑动*超时。每次您再次访问您的网站时,会话超时都会重置。 –
@ChrisPratt好的。我应该如何处理这种情况?是因为SQLServer模式吗? –
这就是我要说的。你不能。在用户处于活动状态时,会话永远不会超时,无论是20分钟还是2小时。如果用户空闲,并且会话超时,则下一个请求将简单地启动一个新会话。您最可能想要做的只是将身份验证设置为20分钟后过期。这将迫使用户在20分钟后重新登录,因为这是*不可*滑动。 –