如何在GeckoFX中设置用户代理?

6

在使用WebBrowser控件一段时间后,我决定尝试Gecko,因为我遇到了WebBrowser的问题,如速度慢和性能下降。我下载了最新版本的Geckofx(16.0.0.2)和Xulrunner(16.0.2),并创建了一个GeckoWebBrowser控件。当我尝试导航到网页时,我收到了一个JavaScript警告,提示我的Web浏览器不受支持,并且应该使用Firefox >2.0.0.2,这显然是荒唐的。 问题是 - 我猜测 - 检测到的用户代理字符串是“Mozilla/5.0(Windows NT 6.1; WOW64; rv:16.0)Gecko /16.0”,而不是正常的Firefox字符串“Mozilla/5.0(Windows NT 6.1; WOW64; rv:18.0)Gecko/20100101 Firefox/18.0”。控件的用户代理字符串中缺少“20100101”和“Firefox”。有没有办法用C#来更改它? 我使用的是C# WinForms .NET 4.5。


请发布一些关于编译的链接或额外信息。 - Dennis Alexander
我不确定你在寻找什么......我会给你一些链接,希望能回答你的问题。GeckoFX = "https://bitbucket.org/geckofx",XULRunner="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/"。这个问题已经被回答了。 - pzogr
1个回答

12

来自http://www.webprogrammingblog.com/geckofx-set-user-agent/

public Form1()
{
    InitializeComponent();
    Gecko.Xpcom.Initialize("c:\\tools\\xulrunner");
    myBrowser = new GeckoWebBrowser();
    myBrowser.Parent = this;
    myBrowser.Dock = DockStyle.Fill;

    string sUserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.1) Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)";
     Gecko.GeckoPreferences.User["general.useragent.override"] = sUserAgent;
}

太棒了!谢谢!我只需要替换skybound部分,因为它已经不存在了。最终命令如下:Gecko.GeckoPreferences.User["general.useragent.override"] = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0"; - pzogr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接