超时MVC网站经过一段时间的不活动

时间:2017-03-24 12:14:30

标签: asp.net-mvc cookies timeout session-cookies setcookie

我试图在一段时间不活动后暂停我的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"/>

但这些似乎都不起作用。

我缺少什么,哪种方法最好?

1 个答案:

答案 0 :(得分:0)

首先,您在此处将两个概念混为一谈:会话超时和身份验证超时。换句话说,没有&#34;网站超时&#34 ;;你需要弄清楚你实际上想要控制的是什么。接下来,会话超时滑动,因此只要用户正在使用网站,他们的会话就永远不会超时。但是,身份验证超时是绝对的,因此在指定的时间过后,用户将被注销,无论他们是否正在积极使用该站点。

就身份验证超时而言,您实际上也在这里混淆了两个概念:身份和成员身份(表单身份验证)。您拥有的第一部分代码是如何在ASP.NET身份中控制身份验证超时,而第二部分代码是您使用ASP.NET成员身份控制它的方式。这两者是互斥的,显然需要与您的项目正在使用的实际身份验证机制相匹配。