[英]Timeout MVC website after period of inactivity
闲置一段时间后,我试图使MVC网站超时。
我尝试了很多事情,但似乎都没有用。 我尝试了以下方法:
使用CookieAuthenticationOptions类
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
ExpireTimeSpan = TimeSpan.FromMinutes(1),
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/xxx")
});
在web.config中使用表单身份验证元素:
<authentication mode="Forms" >
<forms loginUrl="~/xxxx" timeout="1"/>
</authentication>
并在配置文件中使用sessionState:
<sessionState timeout="1"/>
但是这些似乎都不起作用。
我缺少什么,最好的方法是什么?
首先,您在这里混淆了两个概念:会话超时和身份验证超时。 换句话说,没有“网站超时”之类的东西。 您需要弄清楚您实际上在试图控制什么。 接下来,会话超时会逐渐增加 ,因此只要用户正在积极使用网站,他们的会话就永远不会超时。 但是,身份验证超时是绝对的,因此,经过指定的时间后,无论用户是否正在积极使用该站点,都将注销该用户。
就身份验证超时而言,实际上您还在这里混淆了两个概念:身份和成员身份(表单身份验证)。 您拥有的第一部分代码是如何在ASP.NET Identity中控制身份验证超时,而第二部分代码是如何通过ASP.NET Membership控制身份验证超时。 两者是互斥的,显然需要与项目所使用的实际身份验证机制相匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.