Perdida de variables de sesion.

r2am
06 de Febrero del 2004
Hola.

Mi problema radica en que en determinados casos, las pginas ASP que estn se basan en variables de Session para funcionar no lo hacen. Despus de investigar me he dado cuenta que lo que realmente pasa es que las variables de Session se pierden.

Esto ocurre cuando una ventana padre (con las variables de Session) crea una hija, en la cual las variables de session no aparecen. Lo bueno es que hay ordenadores en que funciona y otros en los que no.

Adems este problema solo se presenta en Internet Explorer, mientras que ele Netscape funciona sin problemas.

Me huele que el problema se da en IE v 5.* y 6.* con el parche Q321232.

¿Alguna idea?

¿Se puede desinstalar si viene de serie (por desgracia tengo el WinXP) (ne huelo que no)?

¿Algin ha oido algo del tema?

etc.

Salu2

bacho
06 de Febrero del 2004
igual tengo ese problema con las sessiones cuando se instala el parche(de seguridad de internet explorer) q321232 y creo que otro. todabia no he podido resolverlo sera que alguien sabe.
gracias

rapomon
06 de Febrero del 2004
Que tipo de servidor usais... IIS, PWS...

r2am
06 de Febrero del 2004
IIS 5 (Win XP :-(

bacho
06 de Febrero del 2004
IIS 4

kikomann
06 de Febrero del 2004
he encontrado la solucion, y me funciona, hay que declara unas variables en pagina principal y listo

espero os ayude, aqui os lo mando

<MSIEPrivacy>
<MSIEPrivacySettings formatVersion="6">
<p3pCookiePolicy zone="internet">
<firstParty noPolicyDefault="reject" noRuleDefault="accept" alwaysAllowSession="yes">
<if expr="TEL" action="reject"></if>
<if expr="FIN,CON" action="forceSession"></if>
<if expr="FIN,CONa" action="forceSession"></if>
<if expr="GOV,PUB" action="forceSession"></if>
</firstParty>
<thirdParty noPolicyDefault="accept" noRuleDefault="accept" alwaysAllowSession="yes">
</thirdParty>
</p3pCookiePolicy>
<alwaysReplayLegacy/>
</MSIEPrivacySettings>
<MSIESiteRules formatVersion="6">
<site domain="www.dkasa.com"
action="accept">
</site>
</MSIESiteRules>
</MSIEPrivacy>


FUENTE http://msdn.microsoft.com/library/default.asp?url=/workshop/security/privacy/overview/privacyimportxml.asp

saludos

Dispa
06 de Febrero del 2004
A mi me pasa igual. El servidor es IIS 5 y el cliente es WinXP. No he tenido mas remedio que utilizar cookies. Lo cual hace que la web dependa de que el usuario permita la escritura de cookies en su pc. Si alguien sabe como solucionarlo y que ademas no dependa de los parches de seguridad de Microsoft? Gracias.

rapomon
06 de Febrero del 2004
Toda variable de sesin siempre est disponible en todas las pginas ubicadas dentro del directorio virtual asignado.
Si resulta que estais generando pginas con javascript es obvio que no podais usar las variables de sesin disponibles, en cualquier otro caso s, a no ser que enlaceis con otra pgina no asp o pgina ubicada fuera del directorio virtual donde estis trabajando. De todas formas inicializarlas en el global.asa.

r2am
06 de Febrero del 2004
Las ventanas estn todas en los directorios adecuados. Se crean (una de las que no funciona al menos) con un 'target="new"'. Sigo diciendo que es problema del cliente (IE), pues funciona perfectamente en Netscape y en otros ordenadores con IE.

EL problema es que hay ordenadores (creo) con el famoso parche Q321232 y funciona. A mi juicio es una mezcla entre IE, parches y Sistema Operativo.

El problema radica en cuando los clientes de mi empresa empiecen a llamar con el error. Creo que el susodicho parche tiene gran parte de la culpa.

Lo de usar cookies es la alternativa, pero la seguridad (que en mi caso es fundamental) se va al traste.

Salu2.

P.D. ¿Se puede eliminar el parche Q321232 en WinXP?

r2am
06 de Febrero del 2004
Se me olvidaba.

No todos mis usuarios pueden emplear cookies, por configuracines de equipos, restricciones, entorno, etc.

Dispa
06 de Febrero del 2004
Las paginas estan en el mismo directorio virtual y no utilizan JavaScript. Las paginas son todas en ASP. Yo creo que el problema lo tengo el los frames. Porque hasta el ID de Session de ASP es distinto en cada frame. Lo cual creo que provoca que las variables de sesion se pierdan ya que no es la misma sesion. Tambien si actualizas (F5) se pierden los valores de las variables de sesion. De momento voy tirando de cookies y cuando las variables de sesion sean estables lo har asi, que creo que es mas seguro. Gracias.

Jaime
06 de Febrero del 2004
Tengo un problema similar:

Mi problema es que algunas de las modificaciones que realizo en una variable session no persisten. En ie6.0 funciona, y en Netscape 7.02 tambien, pero en ie5.0 aparece el problema (no he probado con mas).

Situacin:
Desde una pagina A se abre otra B a la que se le manda un dato. Ese dato se procesa y se modifica la variable session.
Despues el usuario cierra la ventana y se redirecciona desde script cliente a la ventana A.
El problema es que no falla siempre. En principio solo cuando abro y cierro de manera rpida varias veces seguidas (llega un momento en que las modifocacines no se guardan y se queda estancado en el mismo dato).
Por otro lado, generalmente cuando pasa un rato y lo vuelvo a intentar, entonces las modificaciones si se llevan a cabo.
El codigo resumido es:

ARRAYCestaCompra = Session("MiCestaCompra")
ARRAYCestaCompra(CantidadCesta,i) =(ARRAYCestaCompra(CantidadCesta,i)*1)+ (Request.querystring("Cantidad_inicial")*1)
Session("MiCestaCompra") = ARRAYCestaCompra

Y cuando el cliente cierra haciendo click en una gif:
function Continuar()
{
//Refrescamos la pagina del producto para que la cesta se actualice con las modificaciones
window.opener.location.href = window.opener.location;
//Cerramos la ventana actual
window.close();
}


MAS DATOS:

Situacion:
1. Se compra 1 elemnto de un producto repetidas veces hasta que el contenido de la variable sesion se "congela" y deja de modificarse.
2. En ese momento se compra otra cantidad (por ejemplo 5 elementos). Entonces la variable session se actualiza correctamente.
3. A continuacion probamos a comprar de nuevo 1 solo elemento. De repente la variable session vuelve al estado alterior a comprar 5 elementos.

No se si tendra algo que ver con la cach





Alguna sugerencia?

Muchisimas gracias
Jaime

Cricho
06 de Febrero del 2004
El profesor que me inicio en ASP, en su momento me dijo que las variables de sesion necesitan que esten habilitadas las cookies en el navegador para poder funcionar. El tema es que ASP envia como cookie el sessionid para poder saber a que session pertenece ese navegador.

Por otro lado esta perfectamente bien que la apertura de otra ventana del navegador cree otra sesion, ya que logicamente DEBERIA SER OTRA SESSION. Si no fuera asi, una ventana estaria modificando variables de la otra.