2011-04-18 101 views
4

我有一个ASP.NET MVC 3应用程序,它具有以下web.config设置。ASP.NET身份验证票证失效的问题

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

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

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

应用程序是ASP.NET MVC 3,.NET框架4

任何深入了解这会有所帮助。

回答

1

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

+0

实际上,它是主机回收应用程序池,因为该应用程序消耗的资源超出允许范围。感谢您的洞察力,给了我一个关于从哪里开始的想法。 – 2011-04-19 15:51:36

+0

@nick你找到解决方案吗?我有同样的问题 – 2011-05-25 15:40:25

+0

@穆罕默德是的。我写了一个解决方法来自动读取cookie并在应用程序重置后续订票证。它是一个黑客,但它解决了这个问题。现在工作正常 – 2011-08-17 13:40:17

1

您是否正在发布custome令牌?如果是这样,它将覆盖web.config设置。详情请查阅article

+0

我不是发出客户令牌或以任何方式覆盖默认设置 – 2011-04-19 08:44:44

+0

这是sessiontimeout吗?试试这个http://forums.asp.net/t/1283350.aspx/1?How+to+increase+session+timeout+to+8+to+9hrs+ – suhair 2011-04-19 08:58:17

+0

会话到期如何影响表单身份验证票据? – 2011-04-19 10:21:33