2011-12-15 15 views
5

Ho un'applicazione ASP.NET MVC che utilizza l'autenticazione di moduli. Ecco la linea di codice in cui creo il token di autenticazione:Il token di autenticazione persistente scade

FormsAuthentication.SetAuthCookie(username, true); 

mio web.config contiene:

<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> 

Nonostante il parametro per il cookie persistente viene impostata su true, i miei utenti vengono logout dopo aver alcuni giorni di inattività.

L'applicazione viene distribuito AppHarbor, ma ho sperimentato lo stesso comportamento quando è stato ospitato su un server dedicato.

Cosa mi manca che potrebbe causare la disconnessione sporadica degli utenti?

risposta

3

Il timeout è impostato su 2880 minuti, ovvero 48 ore?

timeout viene utilizzato per specificare una durata limitata per la sessione di autenticazione basata su form. Il valore predefinito è 30 minuti. Se viene emesso un cookie di autenticazione moduli permanente, l'attributo timeout viene anche utilizzato per impostare la durata del cookie permanente.

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

+0

Ah, vedo che in ASP.NET 1.1, il timeout è stato ignorato per i cookie permanenti, ma a partire dal 2.0, è utilizzato per i cookie persistenti anche. Duh. –

+0

Sto cambiando il timeout a 5259600 (60 minuti/ora * 24 ore/giorno * 365,25 giorni/anno * 10 anni). –

+6

Sei sicuro che sia abbastanza lungo? –

Problemi correlati