加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 00:29:29 所属栏目:asp.Net 来源:网络整理
导读:我们都知道IE11检测不能与服务器端语言一起使用,因为Microsoft已经删除了IE / MSIE浏览器指示,现在完全是“Mozilla”。 我也知道,做浏览器检测/版本是有风险的,但过去一直很好地服务于我们。 网站的一些要求是: 必须使用某些版本的Firefox及以上版本 必
我们都知道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。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读