2010-04-15 29 views
6

Necesito abrir una segunda ventana o pestaña del navegador, pero debe tener un session ID diferente.Abrir una nueva ventana del navegador con una nueva ID de sesión en ASP.NET

Abrir la nueva ventana del navegador desde una página ASP.NET es fácil, pero luego comparte la misma cookie y por lo tanto session ID con el original.

¿Cómo puedo hacer esto?

+0

mi pregunta ha sido reformulada ?? sin preocupaciones, pero aún buscando una respuesta. debe ser posible, es una limitación realmente tonta tener en cualquier navegador –

+0

Daniel, no creo que vayas a obtener muchas soluciones más allá de las ya sugeridas. La única sesión por navegador/cookie es bastante fundamental para la forma en que la mayoría de los navegadores funcionan actualmente. Tal vez intente y piense en otra forma de lograr lo que está haciendo. En otras palabras, ¿por qué necesita la nueva ventana del navegador para tener una sesión diferente y puede solucionarlo de alguna manera? – codeulike

Respuesta

6

Esta es una limitación del navegador: las instancias de los navegadores comparten datos de cookies (incluida la cookie de sesión) cuando se están ejecutando, por lo que esto no es posible con su navegador estándar.

Si tiene la opción de ejecutar diferentes navegadores (IE y Firefox, por ejemplo) no comparten cookies y tendrán diferentes sesiones.

Editar:

Si usted tiene control sobre los encabezados de host DNS de IIS y en su entorno, es posible que pueda usar muchas diferentes nombres de dominio - uno por cada sesión.

El navegador tratará cada nombre de dominio como un servidor diferente y se crearán diferentes cookies (y por lo tanto sesiones).

+0

Sí, lo sé, pero ¿qué son los hackeos a su alrededor? Cuando cambio el dominio a la dirección IP al abrir la nueva ventana, me da una segunda sesión que es genial, pero luego estoy limitado a solo 2 sesiones. Debe haber mejores formas de evitar el problema. –

+0

@Daniel: Puede configurar IIS para que pueda usar 'a.domainname.com',' b.domainname.com'. 'c.domainname.com', etc. De esta manera tienes sesiones ilimitadas. – Aaron

+0

sí, pero eso es un poco extremo, seguramente debe haber una solución al problema –

0

No creo que haya una manera de hacerlo, porque las cookies se almacenan en el nivel del navegador; no obstante, cuantas ventanas abran, igual tendrán la misma cookie y, por lo tanto, la misma sesión.

Quizás es posible si usa Cookieless sessions, no estoy seguro, aunque hay bastantes desventajas en la ruta de las sesiones sin cookies.

editar: Dependiendo de sus circunstancias, una forma de lograr lo que está tratando de lograr podría ser tener varios nombres de dominio/urls diferentes que apuntan al mismo sitio ASP.NET, que le permitirá mantener el cookies y sesiones separadas. Pero si necesita más de 2 o 3 sesiones por navegador, entonces eso va a ser una tontería.

+0

no, es un sistema heredado, así que no puedo cambiar el sitio para ejecutar cookies –

+0

jip, varias direcciones URL diferentes para el sitio me permiten crear nuevas sesiones, pero limitadas a –

+0

sesiones sin cookies hacen que sea mucho más fácil realizar ataques de fijación de sesión , ESPECIALMENTE en asp.net, donde no puede crear manualmente una nueva sesión al iniciar sesión http://blogs.sans.org/appsecstreetfighter/2009/06/14/session-attacks-and-aspnet-part-1/ –

3

En IE tiene que usar Archivo - Nueva sesión o hay una clave de registro que puede establecer para pestañas/sesiones. Tus pestañas cambiarán de color y te mostrarán qué sesión estás usando.

+0

no, no se puede pedir a todos para cambiar su configuración de registro, duda de que muchos incluso sepan cómo hacerlo –

+0

Si trabaja en un entorno corporativo como yo, el departamento de TI distribuye este cambio automáticamente, por lo que es una buena solución para una aplicación basada en intranet. –

Cuestiones relacionadas