【问题标题】:What are possibilities that <sessionState> timeout is ignored when using forms authentication?使用表单身份验证时忽略 <sessionState> 超时的可能性有哪些?
【发布时间】:2015-03-12 17:00:47
【问题描述】:

我们在 .NET 4.5 上运行 MVC 应用程序,我正在处理 sessionState 和表单身份验证的会话超时:

web.config:

<system.web>
  <sessionState timeout="1"></sessionState>
  <compilation debug="true" targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" />
  <authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" timeout="2" />
  </authentication>
  <!-- some more tags ... -->
</system.web>

据此,我认为我应该在 1 分钟不活动后退出,但我没有。我确实会在 2 分钟后退出。

我想知道这是为什么?我们不会在会话中保存或存储任何内容,但这有关系吗?

【问题讨论】:

    标签: asp.net asp.net-mvc forms-authentication


    【解决方案1】:

    会话状态与您的登录状态无关。您可以登录,但可以创建和放弃多个会话,而无需注销。

    这是一个合理的事件序列:

    1. 会话开始
    2. 用户登录
    3. 会话超时
    4. 会话开始
    5. 会话超时
    6. 会话开始
    7. 用户注销
    8. 会话超时

    【讨论】:

    • 谢谢,我明白了,但是,sessionState的timeout有什么用呢?
    • @Martijn 让会话超时。假设您在网站上购物,但未登录(因此不涉及身份验证)。您将商品添加到购物车(并且购物车存储在 Session 中)。作为开发人员,您可能希望在一段时间后结束该会话,以便回收内存或数据库空间。所以你设置了一个会话超时。
    • 有道理,谢谢!我从来没有真正想过它,但现在很清楚。再次感谢:)
    猜你喜欢
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多