2011-04-25 32 views
6

Cómo implementar una función de tiempo de espera de la sesión para una aplicación asp.net mvc? Quiero que el usuario se cierre automáticamente una vez que se detecte la inactividad durante un período de tiempo dado.asp.net mvc sesión de tiempo de espera

que puede implementar un ActionFilterAttribute y se aplican a cada método, pero que no firmaría automáticamente al usuario. Se cerrará solo cuando el usuario haya intentado invocar el método para esa acción.

Gracias.

Respuesta

4

Eso se debe a que la sesión se mantiene en el lado del servidor. si desea que una página inactiva en el navegador del usuario se cierre automáticamente, debe escribir algo de JavaScript para ello. puede usar la solicitud ajax para comprobar si la sesión ha caducado o no y, dependiendo del resultado, puede redirigir al usuario al índice (inicio de sesión o cualquier otra página que no requiera autenticación)

12

Debería poder gestionar esto desde el web.config:

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

no soy un experto MVC, sino un cambio en este comportamiento se lanzarán en toda ASP.NET no es algo que cabe esperar.

Esto también se pueden configurar mediante la aplicación de administración de IIS; no está seguro de qué versión de IIS está utilizando, pero this Technet article describes lo que debería ser fácil de seguir, incluso en versiones anteriores (anteriores a IIS7). Tenga en cuenta que detrás de las escenas este método aún administra la configuración dentro del archivo web.config, por lo que si esto es controlado por la versión, no recomendaría cambiarlo de esta manera.

Cuestiones relacionadas