WebBrowser控件报告了哪些UserAgent?

时间:2010-12-05 08:14:22

标签: .net vb.net winforms webbrowser-control user-agent

只是想知道VB.NET在访问网页时读取的浏览器类型。例如,在我的网站上,它显示了访问我网站的所有不同浏览器的细分。

1 个答案:

答案 0 :(得分:12)

您没有为您的问题提供太多上下文,但我假设您在讨论使用.NET Framework中内置的User Agent string时发送的WebBrowser control

由于该控件仅使用Internet Explorer呈现页面,因此您将看到一个用户代理字符串,与您在同一台计算机上使用IE访问该页面时所发现的非常相似。 IE字符串通常将自身报告为Mozilla/4.0 compatible,但也提供特定版本的MSIE并列出当前版本的Windows。

例如,在.NET Framework版本4.0的64位版本的Windows Server 2008 R2下运行,每当我浏览WebBrowser控件中的页面时,我都会被识别为:

  

Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 6.1)

相比之下,同一台计算机上的Internet Explorer将其显示为用户代理字符串:

  

Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 6.1)

唯一的区别是.NET WebBrowser控件将自身报告为Internet Explorer版本7.0(MSIE 7.0),而不是计算机上安装的版本8.0。这是因为出于兼容性原因,控件使用IE 7渲染引擎,而不是IE 8中的渲染引擎。如果需要,可以change this编辑注册表值。

要在IE8标准模式下运行WebBrowser控件,请在注册表中使用以下新值:

  

[(HKEY_CURRENT_USER或HKEY_LOCAL_MACHINE)\ Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION]   “MyApplication.exe”= dword 8000(十六进制:0x1F40)

要在IE7标准模式下运行,请使用以下注册表值:

  

[(HKEY_CURRENT_USER或HKEY_LOCAL_MACHINE)\ Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION]   “MyApplication.exe”= dword 7000(十六进制:0x1B58)