我试图在我的应用程序中配置会话超时。
当我在web.config文件中放入以下代码时,它工作正常。
<sessionState cookieless="true" timeout="1" />
也就是说,我可以看到我的会话在1分钟后超时。 然而,这段代码有一个副作用,就是把session id放在url中,这是不可取的。
另一方面,如果我在web.config中使用下面的代码,会话至少在1小时或更长时间内不会超时。
<sessionState cookieless="false" timeout="1" />
为了确定会话是否真的超时,我在我的_Layout.cshtml中使用了以下代码。
@if (Session[MvcApplication._Ssn_UserName] == null)
{
Response.Redirect("~/Login/Index");
}
当超时工作时,我看到用户被重定向到我的登录页面,只要他们导航到不同的页面,或者只是点击浏览器的刷新按钮。
当我从Visual Studio(IIS Express)或在IIS上运行时,我看到同样的行为。
我在网上做了很多搜索,没有发现无cookiel设置和超时行为之间的任何关联。 如果有任何想法,将不胜感激。