asp.net – Internet Explorer 11在服务器端的检测

我们都知道IE11检测不能与服务器端语言一起使用,因为Microsoft已经删除了IE / MSIE浏览器指示,现在完全是“Mozilla”。

我也知道,做浏览器检测/版本是有风险的,但过去一直很好地服务于我们。

网站的一些要求是:

必须使用某些版本的Firefox及以上版本
必须使用某些版本的Chrome及以上版本
必须使用某些版本的safari(一些以下和一些较新的)
必须使用IE> = 8

所以这里是问题… IE11在我的列表中表示它不支持。我想从Web端的服务器端支持它(ASP.NET / MVC)

目前还不清楚如何从服务器端检测到这一点。有人知道吗

这是现在在IE 11中显示用户代理:

“Mozilla / 5.0(Windows NT 6.1; WOW64; Trident / 7.0; rv:11.0)像Gecko”

rv:11.0告诉我们它的IE11,但是做一个解析仍然意味着,例如,它可能是某种版本的chrome,在这样的要求甚至firefox不支持

那么,看看IE 11或更高版本的最好方法是什么?

我不太确定从“三叉戟”和向前搜索,因为我不知道其他浏览器是否使用。

欢迎任何方向。

解决方法

使用正则表达式,如:
Regex.IsMatch(this.Request.UserAgent,@"Trident/7.*rv:11")

Trident是IE使用的渲染引擎的名称。一些其他应用程序也使用Trident引擎,您可以在维基百科的文章中看到。但是,在用户代理中搜索Trident不应该是一个问题,因为没有其他主要浏览器使用Trident。

只有IE11使用Trident版本7,所以如果你用正则表达式搜索Trident / 7,应该会找到IE11。

相关文章

项目要求通过网站上传大文件,比如视频文件,通过摸索实现了文件分片来上传,然后后台进行合并。 使用了...
安装新版本的Nginx(vim /etc/yum.repos.d/nginx.repo) [nginx-stable] name=nginx stable repo baseu...
什么是 SignalR ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功...
在Windows下使用Docker,我们选择Docker Desktop这个软件,非常方便。 ## Docker Desktop介绍及安装 Do...
项目开始设计的是运行在windows下,所以一开始采用的是windows服务模式来获取多媒体文件信息,后来要求...
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主...