【问题标题】:ASP.NET MVC Application Timeout Not WorkingASP.NET MVC 应用程序超时不起作用
【发布时间】:2012-06-15 14:14:46
【问题描述】:

在我的 Web.config 文件中,我一直在尝试设置会话超时。我使用了以下代码:

<configuration>
   <system.web>
      <sessionState timeout="1"></sessionState>
   </system.web>
</configuration>

当我运行应用程序时,超时仍设置为默认的 20 分钟。试图找出设置不适用的原因。请帮忙!谢谢!

【问题讨论】:

    标签: asp.net-mvc session web-config timeout session-state


    【解决方案1】:

    不要混淆 ASP.NET 会话超时(这是您设置的)和 Forms Authentication cookie 超时,后者完全不同,由 &lt;forms&gt; 标签控制:

    <authentication mode="Forms">
      <forms
        loginUrl="/login"
        timeout="1" />
    </authentication>
    

    ASP.NET 会话使用 cookie 来跟踪用户(它与身份验证无关)并将他们的唯一 ID 与存储在服务器上的哈希表相关联。另一方面,表单身份验证是在 ASP.NET 中跟踪经过身份验证的用户的一种方法。它使用 cookie,但它与 ASP.NET 会话不同。

    【讨论】:

    • 我已经实现了这种代码,我正在处理的是大约 20 分钟后,页面上的所有按钮都停止工作,并且应用程序基本上已经损坏,直到你刷新页面。所以我想增加超时时间。
    • 这些按钮是如何实现的?他们是否依赖表单身份验证或 ASP.NET 会话?
    • 它们有数据绑定,点击事件绑定到 JavaScript 视图模型对象上的函数。
    • 那么您使用的是 AJAX 吗?您正在调用需要身份验证的控制器操作?这些行动是如何实施的?他们使用 ASP.NET 会话吗?我猜一旦表单身份验证超时到期,它们就会重定向到登录页面并中断您的 AJAX 调用。阅读以下文章,了解检测这种情况的可能方法:haacked.com/archive/2011/10/04/…
    猜你喜欢
    • 2014-12-13
    • 2020-04-22
    • 1970-01-01
    • 2016-07-11
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多