none
Evitar compartir la misma sesión a través de múltiples pestañas RRS feed

  • Pregunta

  • Tener una sesión única,no múltiples es complejo.

    Iniciamos sesión (login) en un navegador. Abrimos otra pestaña en el mismo navegador y accedemos directamente a la aplicación.

    El valor de SessionID es el mismo para ambas pestañas.

    Cómo evitarlo ? algún "identificador" de pestaña ?

    miércoles, 11 de septiembre de 2019 21:19

Todas las respuestas

  • Nop, ninguna solución que se pueda aplicar al Session. Está basado en cookies y las cookies se comparten entre pestañas. Como alternativa, podrías usar algún otro mecanismo de conservación de estado, tal como por ejemplo un mecanismo similar al ViewState. Éste utiliza un campo hidden (en lugar de una cookie) y en consecuencia no se comparte entre pestañas. Digo "similar" al ViewState porque el ViewState solo existe en WebForms, pero no en MVC. Pero con un poco de habilidad podrías programar tú mismo un mecanismo similar basado en campos input hidden, gestionados desde tu propio código. Todo depende de qué es lo que quieres preservar en esa sesión.

    Si cuando dices "sesión" te refieres a la sesión de login y no a la sesión del SessionState, entonces es más complicado porque el login siempre funciona mediante cookies. Una solución para que la cookie no se comparta es abrir dos veces el navegador en modo "In Private" o "Incognito". Entonces cada una de las dos copias puede contener su propia cookie y las dos pueden funcionar con un login distinto. En Chrome funciona, en IE y Edge yo he tenido problemas para hacer funcionar esto.

    jueves, 12 de septiembre de 2019 8:19
  • hola 

    En principio no se puede, las session genera un id que aplica a la instancia del browser, las solapas pertenecen a la misma instancia, deberias ejecutar un nuevo browser para que la session genere un nuevo id

    How to differ sessions in browser-tabs?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 12 de septiembre de 2019 13:05
  • Efectivamente, es sesión de login. Parece imposible solución, pues no es viable eso de abrir el navegador en modo "In Private" o "Incognito.

    Y parece que en IE 11, se comparte la misma sesión no solo en pestañas, si no si abres otra ventana nueva (NO in private)
    martes, 17 de septiembre de 2019 19:58