【问题标题】:Problems with ASP.NET Authentication ticket expirationASP.NET 身份验证票证到期问题
【发布时间】:2011-04-18 16:35:17
【问题描述】:

我有一个具有以下 web.config 设置的 ASP.NET MVC 3 应用程序。

<authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" slidingExpiration="true" timeout="525600" path="/" /> 
</authentication>

我的问题出在已部署的应用程序上,我在 5 分钟后或关闭浏览器后自动注销。如果我在注销后检查浏览器上的 .ASPXAUTH cookie,它会正确显示到期日期。

cookie 应该在一年后过期,它在我的本地机器上运行良好。我的猜测是票正在重置,但我不知道为什么。

该应用是 ASP.NET MVC 3、.NET Framework 4。

对此的任何见解都会有所帮助。

【问题讨论】:

    标签: c# asp.net-mvc .net-4.0 forms-authentication


    【解决方案1】:

    您是否有一个自动生成的机器密钥(formsauthentication 使用它来加密 cookie)应用程序可能会在服务器上重置它,然后它无法在客户端解密它。

    【讨论】:

    • 实际上是主机在回收应用程序池,因为应用程序消耗的资源超出了允许范围。感谢您的洞察力,让我知道从哪里开始。
    • @nick 你找到解决方案了吗?我有同样的问题
    • @Muhammad 是的。我写了一个解决方法来自动读取 cookie 并在应用程序重置后更新票证。它是一个hack,但它解决了问题。现在工作正常
    【解决方案2】:

    您是否在发行客户令牌?如果是这样,它将覆盖 web.config 设置。详情请查看article

    【讨论】:

    • 我没有发布客户令牌或以任何方式覆盖默认设置
    • 这是会话超时吗?试试这个forums.asp.net/t/1283350.aspx/…
    • 会话过期如何影响表单身份验证票证?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    相关资源
    最近更新 更多