2012-07-27 80 views
8

Estoy usando los formularios asp.net versión 4 y estoy usando FormsAuthentication incorporado. He seleccionado no persistir al usuario.Google Chrome mantiene las variables de sesión después de que el navegador cierre

 FormsAuthentication.RedirectFromLoginPage(userIAmUsing, false); 

Cuando cierro el navegador en IE y Firefox. Mis variables de sesión se destruyen y me piden que vuelva a iniciar sesión cuando regrese a la página. Sin embargo, en mi configuración de Chrome, tengo marcada la opción "Continuar donde lo dejé". Cuando cierro el navegador en Chrome, persiste la cookie en contra de mis deseos (del desarrollador). De hecho, incluso después de haber cerrado sesión en mi máquina, la sesión persiste. Al ser esta la situación, ¿alguien sabe de algo que pueda hacer como desarrollador para anular este comportamiento y no permitir que la sesión persista después de cerrar el navegador? En otras palabras, ¿puedo hacer que Chrome se comporte exactamente como otros navegadores, incluso si el usuario ha verificado esa configuración?

+1

Esto ha venido hoy para mí. La discusión sobre el informe oficial de errores de Chrome (https://code.google.com/p/chromium/issues/detail?id=128513) me pareció bastante interesante. Puede ver [la respuesta oficial de Google] (https://code.google.com/p/chromium/issues/detail?id=128513#c28) a mitad de camino. Evidentemente, no arreglarán esto. Como desarrolladores, creo que nuestras manos están atadas. –

Respuesta

0

No hay código específico del explorador como tal. Lo que puede hacer es rastrear el IP y el navegador y luego cerrar la sesión del usuario si los detalles de la solicitud cambian.

¿Le fue útil?

+0

Gracias, esto es algo en lo que no había pensado, pero no soluciona mi situación de pesadilla. Un estudiante completa una solicitud en la escuela con información privada y otro estudiante regresa un par de minutos más tarde y puede acceder a su información porque el alumno no se acordó de cerrar sesión sino que simplemente cerró su navegador. Si google juega como todos los demás, esto no es un problema, pero como no lo es, es responsabilidad mía. Y odio cambiar a todos por un jugador porque eso me hace sentir como IE6 una vez más. –

+0

Justificación perfecta. Pero debido a algunos piratas informáticos, pones una gran seguridad y tú también estarás de acuerdo en que eso pone un poco de rendimiento en eso. Solo trata de ponerlo en el módulo y rechazar la solicitud. Puede usar equilibradores de carga si obstaculiza el rendimiento de la aplicación. Déjame saber tus pensamientos – Ankit

2

Tanto las cookies como las sesiones tienen tiempos de espera. Puedes establecer que los tiempos de espera sean cortos para que Chrome no intente reutilizarlos una vez que se acabe el tiempo.

+0

Gracias. Eso es algo que podría hacer, pero eso abre otra lata de gusanos ya que ahora tengo personas a quienes esto no se aplica y que tienen que volver a iniciar sesión porque tuve que cambiar el tiempo de espera a un corto período de tiempo. Realmente estoy buscando una forma de establecer algo, algo así como un archivo robots.txt, que le dice a Chrome que no persista estas cookies para que todos sigan las mismas reglas, sin cambiar realmente las reglas de todos para jugar con Google. –

+0

La sesión de .NET tiene una caducidad variable, lo que significa que mientras el usuario esté activo, la caducidad continuará retrocediendo. Cuando están inactivos, no se retrasarán y, por lo tanto, caducarán después del tiempo de espera. – Jeff

+0

Vea también: http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.slidingexpiration.aspx – Jeff

0

La única cosa que puede hacer es tratar de eliminar la cookie en el controlador de descarga de forma manual;

$(window).unload(function() { /* delete session cookie */ }); 
Cuestiones relacionadas