internet-explorer-8 session-state portlet sessionid

internet explorer 8 - window.open() borra la sesión



internet-explorer-8 session-state (1)

Tengo varios portlets en mi aplicación. Si abro una url usando el método window.open (), la identificación de la sesión cambia y causa un error en otros portlets. Si no abro esta url, todo funciona bien. Pero una vez que se abre esta nueva ventana, la sesión se borra y el resto de los portlets arroja una excepción ya que faltan algunos valores. En la barra de direcciones del navegador escribí javascript: alert (document.cookie); para ver el JSESSIONID. Permanece constante en toda la página y cambia cuando hago clic en el enlace que abre una nueva URL en una nueva ventana. Usé IE8.

Cualquier sugerencia para mantener el estado de la sesión en IE sería muy apreciada.


¿Qué URL está pasando a window.open ()? Una manera fácil de conseguir que IE 8 mantenga el JSESSIONID en el menú emergente sería usar una URL relativa en la llamada a window.open () en el marcado del portlet. Lo más importante es que el nombre de dominio permanezca exactamente igual. Aquí hay un ejemplo de un botón con window.open () en el evento onclick:

<button onclick="javascript:window.open(''/wps/portal'')">Home Page</button>

Estoy usando Websphere Portal, entonces ''/ wps / portal'' solo enlaces a la página de inicio.

Además, ¿cuál es tu objetivo ser el objetivo de la ventana emergente? ¿Una página de portal diferente con la misma sesión?

Actualización: dado que el objetivo de window.open () es una aplicación web independiente alojada en el mismo dominio ...

El servidor del portal y el servidor de aplicaciones que aloja la aplicación web tienen sesiones independientes, pero ambos usan una cookie llamada JSESSIONID de forma predeterminada. La primera vez que accede a la aplicación web, el servidor de aplicaciones sobrescribe la cookie del portal, lo que hace que cada solicitud posterior al portal tenga una identificación de sesión incorrecta. Cuando esto me sucedió a mí, mi solución fue configurar el portal para nombrar a su cookie de sesión de otra forma (por ejemplo, PORTALSESSIONID) para que los dos no entren en conflicto.