有没有办法在C#.NET中创建WebBrowser控件,HttpWebRequest发出的请求共享cookie?
E.g。如果使用HttpWebRequest以编程方式进行请求,然后HttpWebResponse设置cookie,是否有办法确保在WebBrowser控件中也设置了这个?
同样,如果用户使用WebBrowser控件导航并设置了cookie,是否有办法确保HttpWebRequest的CookieContainer也被更新?
感谢您的帮助!
答案 0 :(得分:3)
您需要使用InternetSetCookieEx / InternetGetCookieEx
API手动同步Cookie,这需要您知道相关页面使用的所有子下载的所有网址。
您还需要传递INTERNET_COOKIE_HTTPONLY
标记,以确保您的应用可以看到HTTPONLY
个Cookie。
答案 1 :(得分:1)
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUri);
request.CookieContainer = new CookieContainer();
request.CookieContainer.SetCookies(myUri, webBrowser1.Document.Cookie);
(source)
反之亦然(我不确定):
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUri);
//request.CookieContainer = new CookieContainer();
request.GetResponse();
webBrowser1.Document.Cookie = request.CookieContainer.GetCookies(myUri);