2011-01-05 26 views
6

Voy a empezar por explicar el escenario:cookies creadas mediante programación en Internet Explorer

Tengo un navegador Internet Explorer en el ordenador A. Dentro de la IE tengo un plugin para que pueda acceder a la del objeto del documento, por lo que puede agarrar la galleta en un momento dado.

quiero transferir esa galleta a un nuevo navegador en un equipo diferente B.

Con el fin de iniciar el navegador en el ordenador nuevo BI utilizar el objeto InternetExplorer, puedo controlar el navegador mediante la instancia del objeto, pero no sé cómo "inyectar" la cookie de la primera computadora A en el navegador IE recién creado.

He intentado de dos maneras.

  • En primer lugar, he intentado escribir la cookie antes de iniciar el navegador utilizando la API WinInet InternetSetCookie.

  • y en segundo lugar, he tratado de interceptar la BeforeNavigate2 de eventos y fijar la cookie en el encabezado de la petición HTTP.

Pero ninguno de los que han trabajado :(

¿Es posible establecer una cookie en un nuevo Internet Explorer antes de desplazarse a un sitio web y, por tanto, ser capaz de mantener la sesion el usuario tenía en su anterior equipo

Gracias :)

ACTUALIZACIÓN:? todavía estoy teniendo este problema e hizo algunas otras investigaciones usando Wireshark.

En el caso de BeforeNavigate2, IExplore simplemente ignora el valor "Cookie:" en el encabezado.

En el caso de InternetSetCookie, parece que está funcionando correctamente. Crea el mismo archivo que crea la navegación regular de IExplore, pero cuando vas a esa página, el IE ignora el archivo que contiene la cookie.

El código que estoy usando para escribir la cookie es:

string cookie = "COOKIEVALUES"; 
InternetSetCookie("http://www.facebook.com/", "", cookie+";expires=Sat, 08-Jan-2014 00:00:00 GMT"); 

Respuesta

3

InternetSetCookie() debe ser la forma correcta de hacerlo. ¿Has verificado que estás configurando los valores correctos? ¿Estás usando una URL canonicalizada? ¿Estás especificando una fecha de vencimiento? Obtener la URL incorrecta (no estoy seguro de si cosas como el contenido final o no) tendrá consecuencias obvias, y si no establece una fecha de caducidad, la cookie se guarda en la memoria solo para el proceso actual.

+0

No estoy totalmente seguro de eso. Necesito comprobar cómo funcionan las cookies almacenadas. Pero traté de copiar el archivo de cookies en las computadoras y no funcionó: -S – HyLian

+0

No puedo trabajar con este método. Para empezar, no estoy completamente seguro de cuáles son las cookies de un sitio determinado. – HyLian

0

Primero, intente utilizar una herramienta como IEdebugBar - le mostrará todos los encabezados enviados y recibidos de una manera limpia.

En segundo lugar, ¿ha verificado que el cooky no se envía al servidor? Como parece que estás tratando de 'robar' una sesión de Facebook, supongo que Facebook ignorará una cookie de sesión proveniente de un navegador con una IP diferente, un Agente de Usuario, etc. ¿Lo has tenido en cuenta?

+0

Estoy rastreando las solicitudes usando wireshark, por lo que puedo ver el encabezado http real y no se envía la cookie :(. Si envío la misma cookie usando un script, realmente funciona. El problema es que IE no quiere enviar la cookie que estoy indicando que envíe. – HyLian

+0

¿Se ha escapado la fecha de cocción de la manera correcta? ¿Has probado NULL en lugar de ""? (Eso es lo que encontré en un ejemplo en msdn). Y has oyu tratado de eliminar el espacio desde la fecha de caducidad (entre "Sat" y "08-") - InternetSetCookie ("http://msdn.microsoft.com", NULL, "TestData = Test; expires = Sat, 06-Jan- 2007 00:00:00 GMT "); – rdmueller

+0

Sí, lo he intentado. De hecho, si no coloca la fecha de caducidad correctamente, el método InternetSetCookie devuelve un error. – HyLian

0

http://social.msdn.microsoft.com/Forums/ar/ieextensiondevelopment/thread/d46f0797-5ddb-40c0-af71-2178fa019da8

Comprobar este texto

Después de comparar los 2 ambientes donde el código y las obras y donde No he encontrado que en el equipo en el código no funciona me Tengo un directorio Cookies en mi cuenta de usuario y veo el archivo con las cookies que no puedo borrar.

En otra máquina donde el código funciona No tengo un directorio Cookies en el usuario conectado aunque veo el archivo en Directorio temporal de archivos de Internet.

Cuestiones relacionadas