繁体   English   中英

MVC网站闲置一段时间后超时

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM