user3060369
user3060369

Reputation: 33

C# How to get cookies from GeckoWebBrowser control

I am using the GeckoWebBrowser control for navigate an URL. It actually should have cookies when that page is loaded. But if I tried to get the cookie, I get a blank text even the page is loaded.

GeckoWebBrowser m_Browser = ...

// ... after navigated. string sCookie = m_Browser.Document.Cookie.ToString();

Is there another way to get the cookies from GeckoWebBrowser? Please help me. Thanks

Upvotes: 3

Views: 5287

Answers (2)

Thanh Le Pro
Thanh Le Pro

Reputation: 1

i found a reason for this issue, because the all element of geckowebbrowser is loading then you set cookie immediately, so geckowebbrowser not enough time to authorized. My solution is make a button. onload winform you do navigate url you wan, after than you click on button, behind event button you set authorized cookie for your url. It's working for me. :)

Upvotes: 0

Sire
Sire

Reputation: 4368

This is verified to work with 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 + ";";
}

Also Browser.Document.Cookie seems to be more reliable now, but I haven't tested it extensively.

Upvotes: 4

Related Questions