2009-11-19 22 views
7

Necesito mantener la sesión activa a menos que hasta que el usuario haga clic en cerrar sesión en mi aplicación asp.net mvc (C#).Mantener la sesión activa para siempre como stackoverflow

Cuando el usuario cierra el navegador y se abre de nuevo, la sesión debe continuar con los valores.

Estoy tratando de implementarlo como en stackoverflow.

¿Alguna idea/sugerencia?

+4

¿Algo tan simple como una cookie con una fecha de caducidad larga? –

Respuesta

9

Dice que desea mantener viva la sesión "como en StackOverflow". ... StackOverflow, como la mayoría de los sitios seguros, no mantiene las sesiones activas indefinidamente. Utiliza cookies para "recordar" el inicio de sesión.

+1

¿Hay algún código de muestra para referencia? – Prasad

-3

La sesión será pierde cuando se cierra el navegador

+0

http no tiene una "sesión", su servidor "recuerda" una "sesión" porque le pidió al "navegador" que envíe algo que utilizó para almacenar el estado. "algo" podría ser una cookie, una forma inteligente de crear URL, o posiblemente un campo oculto si cada "página" es una "forma" –

0

Si usted quiere recordar 'estado' incluso cuando (a causa de la cookie de sesión expirada/sesión) que están obligando a los usuarios a conectarse de nuevo. Necesita persistir los datos de la sesión. Tal vez su contenedor web puede hacer esto por usted.

-1

En primer lugar, si desea crear datos de varias sesiones pero temporales, probablemente debería examinar el perfil de usuario de ASP.NET.

Si desea mantener los inicios de sesión en todas las sesiones, consulte los bits de FormsAuthentication que se ocupan de recordar al usuario.

Si necesita mantener las sesiones activas indefinidamente sin configurar el tiempo de espera para siempre (por lo que el administrador del servidor puede desencadenar en algunos casos), un buen truco es configurar un "latido" Ajax para volver al servidor mientras el navegador está abierto y efectivamente hace un truco de "mantener esta sesión viva".

2

si utiliza FormsAuthentication, puede hacer algo como:

FormsAuthentication.SetAuthCookie("userName", true); 

que creará una cookie que se persistió a través de diferentes sesiones de navegador, y logrará lo que estás buscando.

Cuestiones relacionadas