Можно ли сделать WebBrowser control share cookies с HttpWebRequest?
Есть ли способ, чтобы сделать элемент управления WebBrowser в C#.NET и просьб класса HttpWebRequest совместно использовать файлы cookie?
Например, если запрос выполняется программно с помощью HttpWebRequest, а затем HttpWebResponse устанавливает файл cookie, есть ли способ убедиться, что он также установлен в элементе управления WebBrowser?И аналогично, если пользователь переходит с помощью элемента управления WebBrowser и установлен файл cookie, есть ли способ гарантировать, что CookieContainer для HttpWebRequest также является обновлено?
Спасибо за любую помощь!
2 ответа:
Вам потребуется синхронизировать файлы cookie вручную с помощью API
InternetSetCookieEx / InternetGetCookieEx
, и для этого потребуется знать все URL-адреса всех субдаунов, используемых рассматриваемой страницей.Вам также необходимо передать флаг
INTERNET_COOKIE_HTTPONLY
, чтобы убедиться, что файлы cookieHTTPONLY
видны вашему приложению.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUri); request.CookieContainer = new CookieContainer(); request.CookieContainer.SetCookies(myUri, webBrowser1.Document.Cookie);
(Источник )
И наоборот (я не уверен):
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUri); //request.CookieContainer = new CookieContainer(); request.GetResponse(); webBrowser1.Document.Cookie = request.CookieContainer.GetCookies(myUri);