在WPF WebBrowser控件中管理cookie?

ken*_*ner 7 browser cookies wpf httpwebrequest cookiecontainer

有没有办法读取/写入WebBrowser控件使用的cookie?

我正在做这样的事......

string resultHtml;
HttpWebRequest request = CreateMyHttpWebRequest(); // fills http headers and stuff
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
    resultHtml = sr.ReadToEnd();
}
WebBrowser browser = new WebBrowser();
browser.CookieContainer = request.CookieContainer; // i wish i could do this :(
browser.NavigateToString(resultHtml);  
Run Code Online (Sandbox Code Playgroud)

Ian*_*ths 7

关于WebBrowser控件和cookie的一个可能令人困惑的事情是,乍一看,它通常看起来像你的应用程序获得一个单独的cookie存储.例如,如果您登录到存储持久cookie的站点以识别您,那么您是否从托管控件的应用程序内部登录该站点将与您是否通过Internet Explorer登录无关.

实际上,您甚至可以使用不同的身份登录.

然而,虽然可能很自然地得出结论,每个托管的应用程序WebBrowser都有自己的cookie,事实上并非如此.只有两组cookie:在'低完整性'模式下使用的(默认情况下IE运行),另一组,这是你在一个普通应用程序中获得的WebBrowser,也是什么如果你运行升级IE,你会得到的.

  • 不回答如何读写cookie的问题. (2认同)

She*_* 蒋晟 6

webbrowser控件使用WinInet进行网络连接,特别是使用InternetSetCookie(Ex)和InternetGetCookie(Ex)函数进行Cookie管理..Net中没有WinInet包装器,但您可以进行p调用.