【发布时间】:2013-11-15 11:24:52
【问题描述】:
我们都知道 IE11 检测不适用于服务器端语言,因为微软已经删除了 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) 像壁虎”
rv:11.0 告诉我们它的 IE11,但是对其进行解析仍然意味着,例如,它可能是某个版本的 chrome,而这种要求甚至 Firefox 都不支持。
那么,在这里查看它是否确实是 IE 11 或更高版本的最佳方法是什么?
我不太确定从“三叉戟”开始搜索,因为我不知道其他浏览器是否使用它。
欢迎任何方向。
【问题讨论】:
-
在我看来,问题的存在是因为您将支持的浏览器列入白名单,而不是将不受支持的浏览器列入黑名单。您提到自己可能会破坏:您不能将未来的浏览器列入白名单,因为它们还不存在。但是,您可以将不受支持的浏览器列入黑名单,因为这已经过去了。你考虑过这个吗?
-
同意乔恩的观点。这需要一些测试,但让我看看我能做什么。
-
@Jon - 重新访问代码和注释,似乎还有其他浏览器是我们不支持的时期 - 比如一般的网景或移动设备或歌剧或网景......所以这怎么可能被处理,因为我没有这些浏览器来检查将报告的内容并拒绝它们?
-
取决于您对禁止不受支持的浏览器的要求有多严格。如果您想要 100% 严格,那么黑名单将是一场噩梦,there are too many of them out there。也许白名单可能是一种方式 - 这取决于您的确切要求。
-
@Jon - 同意。我们有一套定义的“不去”,而且没有那么多。任何网景,任何野生动物园(除了1),任何歌剧都是不允许的。然后我们有 3 个浏览器(IE、firefox 和 chrome),它们应该是某个版本或更高的版本,它们是受支持的。只是不知道如何继续反转当前代码(即使代码只有几行,但它都是关于支持的最小版本或更高版本,其他一切都不是那么多)
标签: asp.net internet-explorer asp.net-mvc-4