2010-10-22 15 views
23

Ho un'applicazione MVC 2 in cui il timeout è impostato a 2880 (minuti se ho capito bene, ma anche se è secondi c'è un problema):Perché timeout molto breve in ASP.NET MVC?

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
</authentication> 

Ora questo dovrebbe quindi significare 48 ore, o per lo almeno 48 minuti (se il valore è secondi). Ma l'utente viene disconnesso dopo un paio di minuti di inattività ...

Perché è quello? Qualsiasi aiuto apprezzato!

+0

Hai provato con diversi browser? Ho visto questo problema con un utente isolato che navigava con Firefox una volta. –

+0

Sì, il problema si è verificato con Firefox, Chrome, IE e Safari ... – Anders

+0

Questo [post del blog] (http://weblogs.asp.net/owscott/archive/2006/07/15/Forms-Authentication-Timeout .aspx) parla di una situazione simile; forse l'impostazione viene sovrascritta da qualche parte nel codice. –

risposta

32

trovato la risposta finalmente dopo un sacco di Googling ...

è necessario impostare un machineKey personalizzato nel file web.config. Ho usato questo generatore:

http://aspnetresources.com/tools/machineKey

Questo sembra avere a che fare qualcosa con "riciclo" sul web host, che fa sì che l'utente sia disconnesso, se ho capito correttamente.

In ogni caso, ora funziona perfettamente!

+0

Wow, questa è un'informazione davvero utile. Molte grazie! Ho avuto lo stesso problema e lo ha risolto. –

+0

perché è felice? – Duk

+4

il link non è più attivo, puoi spiegare qui di più. In realtà sto affrontando lo stesso problema. Ho fornito il timeout per l'autenticazione dei moduli come timeout = "2880" slidingExpiration = "true" e sessionState timeout a 1440. Tuttavia, la sessione scade dopo 10-15 minuti. Quale può essere il problema. – gokul

-3

2880 viene fornito in minuti. Si disconnetterà automaticamente se si aggiunge slidingExpiration="true". Vedi l'esempio qui sotto.

<forms loginUrl="~/Account/LogOn" timeout="2880" slidingExpiration="true"/> 
+1

Questo non è giusto. Non si disconnetterà automaticamente. Quando SlidingExpiration è impostato su true, l'intervallo di tempo durante il quale il cookie di autenticazione è valido viene reimpostato sul valore della proprietà Timeout di scadenza. – Paul

Problemi correlati