与IE9不一致的UserAgent字符串

时间:2011-06-06 16:05:31

标签: internet-explorer iis-6 cross-browser internet-explorer-9

我在IIS6中的服务器上运行了一个网站。该网站在端口80上配置了两个主机头绑定:

  • mywebsite1 < - 要求本地Windows主机文件中的条目伪造DNS条目
  • mywebsite2.mydomain.com < - 使用DNS

因此,理论上使用Web浏览器访问:

...应该在我的浏览器中显示完全相同的网站。

但是,当我使用IE9查看http://mywebsite1/时,浏览器发送到Web服务器的UserAgent是:

Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+Trident/5.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+Tablet+PC+2.0;+MS-RTC+LM+8;+OfficeLiveConnector.1.5;+OfficeLivePatch.1.3;+.NET4.0C)

但是当我使用IE9查看http://mywebsite2.mydomain.com/时,浏览器发送给Web服务器的UserAgent就是:

Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+Trident/5.0)

为什么IE9会在这两种情况下发送不同的UserAgent字符串?浏览器也在模拟这些用户代理的渲染规则,因此这会导致噩梦般的CSS问题!

其他信息:

  • 我已将其添加到页面标题中。
  • 该网站是ASP.NET Framework 3。
  • Web服务器是IIS 6。
  • 网络浏览器是IE9。
  • (如果您要我澄清其他任何内容,请告诉我)

2 个答案:

答案 0 :(得分:4)

IE9 reports Mozilla/4.0在兼容性视图中,您在查看http://mywebsite1/时是否点击了“撕页”图标? (视图也可以是服务的html requested。)

答案 1 :(得分:0)

这将改变使用者;然而,当我更改使用者时,它将仅用于我正在使用的网站,并且我在网上冲浪,使用者将返回到它的默认值。这就是我用来改变useragent的代码

WebBrowser1.Navigate(txtAddressBar.Text,Nothing,Nothing,“user-agent:”&“Mozilla / 5.0(Windows; U; Windows NT 5.1; en-US)AppleWebKit / 532.2(KHTML,类似Gecko)ChromePlus /4.0.222.3 Chrome / 4.0.222.3 Safari / 532.2“)

此代码发布为一行;但是,我还不知道如何在这里做到这一点。