请求浏览器使用默认用户代理返回InternetExplorer而不是IE

时间:2014-10-22 20:09:32

标签: .net internet-explorer user-agent httpbrowsercapabilities

根据Microsoft的HttpCapabilitiesBase.Browser Property文档,您可以使用以下代码检查Internet Explorer。

System.Web.HttpBrowserCapabilities myBrowserCaps = Request.Browser;
if (((System.Web.Configuration.HttpCapabilitiesBase)myBrowserCaps).Browser.ToUpper().IndexOf("IE") >= 0)
{
    labelText = "Browser is Internet Explorer.";
}
else
{
    labelText = "Browser is not Internet Explorer.";
}

在我的MVC应用程序中,以下代码返回InternetExplorer NOT IE

string browser = HttpContext.Request.Browser.Browser;

使用IE的开发人员工具,我可以将用户代理字符串更改为Default以外的任何IE,并按照文档记录返回IE,但默认返回InternetExplorer

为什么他们会将该字符串更改为InternetExplorer?是否有任何文件可以解释为什么他们会这样做?

1 个答案:

答案 0 :(得分:0)

有几个客户因为这个被我的门户网站阻止了(数百名参加IE11的人)。

这两个客户的版本是Explorer 11.0.9600.17691 CO和11.0.9600.97843IS

这些是IE的自定义版本:https://support.microsoft.com/en-us/kb/969393

IEAK (Microsoft Internet Explorer Administration Kit)
   IC = Internet content provider
   IS = Internet service provider
   CO = Corporate administrator

从Oracle VM VirtualBox下载Windows 7 IE11并安装到其中。

然后下载了IEAK。 https://technet.microsoft.com/en-us/ie/bb219517.aspx英语。奇怪的是,使用c:\​​ builds \ 07072015的安装程序没有语言下拉。我去了控制面板并选择了英语(切换)。打开向导,下拉工作正常。

冉:    C:\建立\ 07082015 \ INS \ WIN32_WIN7 \ EN-US \ IE11-设置 - 全

刚刚完成了向导,没有添加或自定义任何内容。 重启后:

IE现在出现了11.0.9600.17420IS。

指向一个用于转储Request.Browser.Browser的开发网站,它出现了InternetExplorer ...而不是IE

这是Win4 64位集成的.NET4.0和Windows 2k12(未检查4.5,4.5.1等)。出于某种原因,它会以不同的方式检测IEAK。

解决方案很简单,我只是让代码允许。

仅供参考:useragentstring.com字符串看起来一样     Mozilla / 5.0(Windows NT 6.1; Trident / 7.0; rv:11.0),如Gecko