【发布时间】:2016-02-13 16:46:09
【问题描述】:
这真的很奇怪,我使用HttpContext.Request.Browser.Browser 属性来检查请求来自哪个浏览器。
使用chrome时,值为Chrome
使用firefox时,值为Firefox
使用Edge时,值为Chrome
这是HttpContext 中的已知错误吗?
检测 IE\Edge 用户最准确的方法是什么?我见过很多检查 user_agent 值的 JS 代码,但它会随着每个 IE 版本而不断变化,所以很难知道哪些代码更新了,哪些没有更新。
也许有人可以推荐一些用于此目的的好的 JS 库?
【问题讨论】:
-
在用户代理中查找
Edge关键字,它仅存在于 Edge 浏览器中,而不存在于旧的 Trident 浏览器中 -
看起来
Edge返回以下用户代理Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136被识别为 Chrome - 所以,是的,这是一个错误。您可以简单地检查用户代理字符串是否包含Edge。但是,为什么需要这个? -
@Yeldar Kurmangaliyev,我需要在我的站点中阻止 IE\Edge 用户。到目前为止,我已经使用了
HttpContext,我知道在服务器端检查它不是最好的主意,但我认为它可能更准确,现在我认为这是不正确的。 -
@LiranBo 哇,这个网站似乎是一个浏览器种族主义者:) 如果你不介意,你能描述一下这个决定的最初原因吗?也许,我们可以找到另一个解决方案。
-
@Yeldar Kurmangaliyev :),他们是邪恶的 :) ,nha 我在我的网站上使用拖放,这在 IE\Edge 中不受支持。我的网站是为在 Mturk 上进行测试而构建的,所以我并不担心会失去一些用户
标签: javascript asp.net-mvc internet-explorer httpcontext browser-detection