根据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的开发人员工具,我可以将用户代理字符串更改为IE中除Default以外的任何其他字符串,并且它们按文档说明返回IE,但默认情况下返回InternetExplorer

他们为什么将字符串更改为InternetExplorer?那里是否有任何文档说明他们为什么要这样做?

最佳答案

有几个客户因为这个原因而被我的门户网站阻止(数百个进入IE11的用户)。

这两个客户的ie版本是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:\ builds \ 07082015 \ INS \ WIN32_WIN7 \ EN-US \ IE11-Setup-Full

只是逐步完成了向导,没有添加或自定义任何内容。
重新启动后:

IE现在上升了11.0.9600.17420IS。

指向一个专门用来转储Request.Browser.Browser的开发站点,它出现在InternetExplorer ...而不是IE上!

这是集成了Win7 64位和Windows 2k12的.NET4.0(未检查4.5、4.5.1等)。由于某种原因,它对IEAK的检测有所不同。

解决方案很简单,我只允许其中之一允许代码。

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

10-05 22:30