internet explorer-UserAgent字符串与IE9不一致



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

  • mywebsite1 <-需要本地windows主机文件中的一个条目来伪造DNS条目
  • mywebsite2.mydomain.com <-使用DNS

因此,从理论上讲,使用网络浏览器访问以下任一项:

  • http://mywebsite1/
  • http://mywebsite2.mydomain.com/

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

但是,当我使用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
  • (如果你想让我澄清其他事情,请告诉我)

IE9在兼容性视图中报告Mozilla/4.0时,您在查看http://mywebsite1/?(视图也可以由提供的html请求。)

这将更改useragent;然而,当我更改useragent时,它将只适用于我所在的网站,并且我在网上冲浪时,useragent将返回到默认状态。这就是我用来更改用户代理的代码

WebBrowser1.导航(txtAddressBar.Text,Nothing,Nothing,"用户代理:"&"Mozilla/5.0(Windows;U;Windows NT 5.1;en-US)AppleWebKit/532.2(KHTML,如Gecko)ChromePlus/4.0.222.3 Chrome/4.0.2.22.3 Safari/532.2")

此代码张贴为一行;然而,我还不知道如何在这里做到这一点。

最新更新