2011-12-15 104 views
5

我有一个使用表单身份验证的ASP.NET MVC应用程序。这里就是我创建了身份验证令牌的代码行:持久性验证令牌过期

FormsAuthentication.SetAuthCookie(username, true); 

我的web.config包含:

<system.web> 
    <machineKey validationKey="{unique key}" decryptionKey="{unique key}" validation="SHA1" decryption="AES" /> 
    <authentication mode="Forms"> 
    <forms loginUrl="~/account/" timeout="2880" /> 
    </authentication> 
    ... 
</system.web> 
<location path="my"> 
    <system.web> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 
    </system.web> 
</location> 

尽管对持久性cookie中的参数被设置为true,我得到用户注销之后几天不活动。

该应用程序已部署到AppHarbor,但当它在专用服务器上托管时,我经历了相同的行为。

我错过了什么,会导致用户零星注销?

回答

3

您的超时设置为2880分钟,即48小时?

超时用于指定形式认证会话有限的寿命。默认值是30分钟。如果发布持久表单身份验证Cookie,则还会使用timeout属性来设置持久cookie的生存期。

http://msdn.microsoft.com/en-us/library/ff647070.aspx

+0

啊,我看到,在ASP.NET 1.1中,超时被用于永久性Cookie忽略不计,但在2.0开始,它是用于永久性Cookie过。咄。 – 2011-12-16 18:56:35