2012-01-25 7 views
5

Ho il seguente nel mio web.configPerché il timeout dello stato della sessione ha la precedenza sul timeout di autenticazione dei moduli nella mia applicazione MVC3?

<sessionState mode="InProc" 
       timeout="2" 
       cookieless="UseCookies"/> 
<authentication mode="Forms"> 
    <forms 
    loginUrl="~/Account/LogOn" 
    timeout="1" 
    cookieless="UseCookies" /> 
</authentication> 

Per quanto ho capito in MVC3 (o in Asp.Net) controlli sessionState quando la sessione dell'utente sui tempi di server fuori ei controlli di timeout di autenticazione forme quando l'utente sarà costretto ad accedere nuovamente al sito web.

Questo non sembra essere esattamente vero: Se rimuovo la sezione sessionState dal mio web.config il timeout nella sezione di autenticazione è completamente ignorato - sembra solo un timeout dopo un certo periodo di tempo predefinito.

Infatti, il timeout dello stato della sessione sembra essere necessario per controllare quando scade l'autenticazione. Questo non ha alcun senso. Qualcuno può dirmi cosa mi manca qui?

Questo è relativo a this question che ho chiesto, ma non ho capito perché questo è il caso.

risposta

4

Il timeout della sessione è indipendente dal timeout di autenticazione dei moduli.

Non hai elaborare su come si è creato il biglietto, per cui qui sono le stranezze più comuni che possono influenzare le vostre osservazioni:

  1. Se istanziato il biglietto auth te stesso, allora l'impostazione del timeout in la il file di configurazione non ha alcun effetto.
  2. Timeout di scorrimento è un po 'strano, il biglietto non verrà esteso a meno che non si visiti nuovamente nell'ultima metà della finestra.

Si potrebbe voler controllare questo articolo per una panoramica:

http://support.microsoft.com/kb/910443

Problemi correlati