【问题标题】:how to increase session timeout over 1 hour如何在 1 小时内增加会话超时
【发布时间】:2018-09-07 06:00:38
【问题描述】:

我想允许用户超过 1 小时的更长时间的不活动超时设置。我在 web.config 中配置:

<authentication mode="Forms">      
  <forms name="MYWEBAPP.ASPXAUTH" loginUrl="~/Welkom.aspx" protection="All" 
         timeout="181" slidingExpiration="true" path="/"/>
</authentication>

应用程序池有高级设置:

Idle Time-out (minutes):   181

在登录代码中我配置了票证和 cookie:

FormsAuthenticationTicket ticket = new ...
ticket.expiration = DateTime.Now.AddMinutes(180);
...
cookie.Expires = ticket.Expiration.AddMinutes(5);
Response.Cookies.Add(cookie);

MasterPage 在每个网页的页脚打印ticket.expiration,这样我就可以看到内部发生了什么。

众所周知,sliding expiration 表示超时值只有在超时时间过半后才通过 GET 请求增加。我测试如下:

登录时,我在页脚中看到提前 3 小时的过期时间。

每隔一段时间我都会在网站上做一些事情,但是过期时间没有改变。

如果我在到期时间提前不到 90 分钟时执行某项操作,则到期时间会从那一刻起更新为 3 小时。

但是,如果我等待超过 60 分钟,然后做某事,而到期时间仍然提前一个多小时,我会得到登录页面。

有人知道如何解决这个问题吗?

【问题讨论】:

  • 你读过这篇 S/O 文章吗? stackoverflow.com/questions/3984424/…
  • @tgolisch 很棒的链接!现在我在 Web.config 中找到了这个 SessionState 参数。测试需要很多时间,期待明天的结果。
  • @tgolisch 90 分钟的第一次测试成功了!为什么不将缺少 SessionState 参数的链接放在我很乐意接受的答案中?

标签: asp.net authentication iis


【解决方案1】:

要配置会话不活动超时,有四个设置。在我的问题中,我提到了三个设置,timeout and auto logout in asp.net 2.0 with IIS 7 even after doing all the possible settings 提到了第四个设置:Web.config 中的 SessionState 参数。

【讨论】:

    猜你喜欢
    • 2019-09-27
    • 2012-01-29
    • 2011-01-22
    • 2018-06-05
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    相关资源
    最近更新 更多