2011-07-17 23 views
6

¿hay alguna manera de hacer que el control WebBrowser en C# .NET y las solicitudes hechas por HttpWebRequest compartan cookies?Posible hacer que el control WebBrowser comparta cookies con HttpWebRequest?

E.g. si se realiza una solicitud programáticamente con HttpWebRequest y luego HttpWebResponse establece una cookie, ¿hay alguna forma de asegurarse de que esto también se establezca en el control WebBrowser?

y del mismo modo, si el usuario navega con el control WebBrowser y se establece una cookie, ¿hay alguna forma de garantizar que CookieContainer para HttpWebRequest también se actualice?

¡Gracias por cualquier ayuda!

Respuesta

3

que había necesidad de sincronizar las cookies de forma manual utilizando las API InternetSetCookieEx/InternetGetCookieEx, y esto requeriría que conoce todas las URL de todas las descargas secundarias utilizadas por la página en cuestión.

También debe pasar el indicador INTERNET_COOKIE_HTTPONLY para asegurarse de que su aplicación vea las cookies HTTPONLY.

1
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUri); 
request.CookieContainer = new CookieContainer(); 
request.CookieContainer.SetCookies(myUri, webBrowser1.Document.Cookie); 

(source)

y viceversa (no estoy seguro):

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUri); 
//request.CookieContainer = new CookieContainer(); 
request.GetResponse(); 
webBrowser1.Document.Cookie = request.CookieContainer.GetCookies(myUri); 
+0

gracias por la respuesta. ¿entonces crees que no es posible hacer las dos cosas? ¿Qué pasa si uso una alternativa al control WebBrowser? ¿Hay alguna alternativa que me permita hacer esto? – Jimmy

+0

@Jimmy: actualicé mi respuesta. Intentemos. Por favor, infórmeme sobre sus resultados. – abatishchev

Cuestiones relacionadas