根据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)