C#如何从GeckoWebBrowser控件获取cookie

问题描述 投票:3回答:2

我正在使用GeckoWebBrowser控件浏览URL。加载该页面时,它实际上应该具有cookie。但是,如果我尝试获取Cookie,即使页面已加载,也会得到空白文本。

[GeckoWebBrowser m_Browser = ...

// ...浏览后。字符串sCookie = m_Browser.Document.Cookie.ToString();

还有另一种从GeckoWebBrowser获取cookie的方法吗?请帮我。谢谢

c# gecko geckofx
2个回答
3
投票

已验证可与GeckoFX v29.0一起使用。

var uri = new Uri(txtURL.Text);
//often cookies are stored on domain level, so ".google.com", not "www.google.com" (leading dot is important)
string host = uri.Host.Replace("www", ""); 
var cookies = CookieManager.GetCookiesFromHost(host);
string cookiesText = "";
while (cookies.MoveNext())
{
    var c = cookies.Current;
    cookiesText += c.Name + "=" + c.Value + ";";
}

也浏览器.Document.Cookie现在似乎更可靠,但我尚未对其进行广泛的测试。


0
投票

我发现了此问题的原因,因为geckowebbrowser的所有元素都正在加载,因此您立即设置了cookie,因此geckowebbrowser没有足够的时间进行授权。我的解决方案是制作一个按钮。在onload winform上,您可以浏览所需的URL,然后单击按钮,然后在事件按钮后面为URL设置授权的cookie。它为我工作。 :)

© www.soinside.com 2019 - 2024. All rights reserved.