在WebBrowser控件中设置cookie

ty.*_*ty. 22 .net c# browser webbrowser-control

我正在使用WebBrowser的Navigate功能加载网站,我希望浏览器加载带有我给它的cookie的页面.

以下代码不起作用:

wb.Navigate(url, null, null, "Cookie: " + cookie + "\n");
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我必须使用InternetSetCookie吗?这似乎不是最好的解决方案.

Kir*_*lly 20

看起来有更好的方法:

导入InternetSetCookie功能:

[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool InternetSetCookie(string lpszUrlName, string lpszCookieName, string lpszCookieData);
Run Code Online (Sandbox Code Playgroud)

创建Cookie对象:

Cookie temp1 = new Cookie("KEY1", "VALUE1", "/Path/To/My/App", "/");
Run Code Online (Sandbox Code Playgroud)

调用InternetSetCookie函数来设置该URL的cookie

InternetSetCookie("https://my.url.com/Path/To/My/App", null, temp1.ToString() + "; expires = Sun, 01-Jan-2013 00:00:00 GMT");
Run Code Online (Sandbox Code Playgroud)

Navigate在WebBrowser该网址,你会喜欢去.

webBrowser1.Navigate("https://my.url.com/Path/To/My/App");
Run Code Online (Sandbox Code Playgroud)

认为这是问题的最佳解决方案:).

  • 对于任何试图从DateTime对象获取'expires ='部分的人,这里是如何做到的:<code> myDateTimeObj.ToUniversalTime().ToString("ddd,dd-MMM-yyyy HH:mm:ss")+" GMT"</ code> (2认同)