2011-04-25 45 views
6

Come implementare una funzionalità di timeout della sessione per un'applicazione asp.net mvc? Voglio che l'utente venga automaticamente disconnesso una volta che viene rilevata inattività per un periodo di tempo di attribuzione.asp.net timeout sessione mvc

È possibile implementare un ActionFilterAttribute e applicare a ciascun metodo, ma ciò non comporterebbe la disconnessione automatica dell'utente. Si disconnetterà solo quando l'utente tenta di richiamare il metodo per quell'azione.

Grazie.

risposta

4

Questo perché la sessione viene mantenuta sul lato server. se vuoi che una pagina inattiva nel browser dell'utente venga automaticamente disconnessa, devi scrivere qualche javascript per questo. è possibile utilizzare una richiesta Ajax per verificare se la sessione è scaduta o meno e in base al risultato è possibile reindirizzare l'utente all'indicizzazione (accesso o qualsiasi altra pagina che non richiede l'autenticazione)

12

Dovresti essere in grado di gestirlo da web.config:

<system.web> 
    <sessionState timeout="x"/> 
    ... 
</system.web> 

non sono un esperto MVC, ma un cambiamento di questo comportamento implementato in ASP.NET non è qualcosa che ci si aspetterebbe.

Questo può anche essere configurato utilizzando l'applicazione di gestione IIS; non è sicuro quale versione di IIS stai usando, ma this Technet article describes cosa dovrebbe essere facile da seguire anche nelle versioni precedenti (pre-IIS7). Notare che dietro le quinte questo metodo gestisce ancora le impostazioni all'interno del file web.config, quindi se questo è controllato dalla versione non consiglierei di cambiarlo in questo modo.

Problemi correlati