可以使WebBrowser控件与HttpWebRequest共享cookie?

时间:2011-07-17 11:49:53

标签: .net cookies httpwebrequest webbrowser-control

有没有办法在C#.NET中创建WebBrowser控件,HttpWebRequest发出的请求共享cookie?

E.g。如果使用HttpWebRequest以编程方式进行请求,然后HttpWebResponse设置cookie,是否有办法确保在WebBrowser控件中也设置了这个?

同样,如果用户使用WebBrowser控件导航并设置了cookie,是否有办法确保HttpWebRequest的CookieContainer也被更新?

感谢您的帮助!

2 个答案:

答案 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);