【发布时间】:2013-12-11 03:56:03
【问题描述】:
我正在使用Geckfx22.0 和xulrunner22.0。由于 .Net 中的 GeckoWebBrowser 与所有其他 GeckoWebBrowser 实例共享 cookie,我希望 GeckoWebBrowser 拥有自己的 cookie 容器,该容器不共享之前在其他 GeckoWebBrowser 或其他实例中创建的任何 cookie。
例如,当我创建 GeckoWebBrowser 时,它不应该有任何 cookie。当我运行 2 个 GeckoWebBrowser 实例时,它们有自己的 cookie 容器,并且不会相互共享或冲突 cookie。
这怎么可能?
我通过创建不同的类和启动geckofx 尝试了各种可能的方法,但是当同时运行不同的浏览器时,它会在其他浏览器之间共享 cookie。如果我从一个浏览器中删除 cookie,其他浏览器也会发生同样的情况。我已经在不同的时间启动了proxy 和useragent,它的工作原理,但不能同时为多个浏览器应用各种用户代理。
public void Initiate()
{
Gecko.Xpcom.Initialize(AppDomain.CurrentDomain.BaseDirectory + "/xulrunner");
if (this.IsProxySet)
{
Gecko.GeckoPreferences.User["network.proxy.http"] = this.Host;
Gecko.GeckoPreferences.User["network.proxy.http_port"] = this.Port;
Gecko.GeckoPreferences.User["network.proxy.type"] = 1;
}
if (IsUseragentSet)
{
Gecko.GeckoPreferences.User["general.useragent.override"] = this.Useragent;
}
}
为了删除 cookie,我使用以下代码:
nsICookieManager CookieMan;
CookieMan = Xpcom.GetService<nsICookieManager>("@mozilla.org/cookiemanager;1");
CookieMan = Xpcom.QueryInterface<nsICookieManager>(CookieMan);
CookieMan.RemoveAll();
我们将不胜感激!!!
【问题讨论】:
标签: c# winforms cookies geckofx