在ASP.NET中检测IE10及更早版本

时间:2017-05-17 15:18:41

标签: asp.net asp.net-mvc internet-explorer browser-detection httpbrowsercapabilities

我支持ASP.NET MVC站点,如果用户在IE7或更早版本上,则会将用户重定向到错误页面。

if (Request.Browser.Browser == "IE" && Request.Browser.MajorVersion <= 7)
{
    return RedirectToAction("Browser","Error");
}

我现在需要进行更改,以便在用户使用IE10或更早版本时将用户重定向到错误页面。我知道要检测IE8,我只需要检查MajorVersion等于8,但我还没有找到使用Request.Browser来检测IE9和IE10的文档。

也许检查MajorVersion是否小于或等于10就足够了。但是,我知道IE11,Request.Browser.Browser返回&#34; InternetExplorer&#34;而不是&#34; IE&#34;,而且我还没能找到关于IE9和10返回浏览器的确定答案。此外,由于信任问题IE给了我,我不安全,假设IE9和10将MajorVersion设置为9和10.有没有人知道Request.Browser.Browser和Request.MajorVersion将包含哪些IE9和10?

2 个答案:

答案 0 :(得分:0)

我可以确认Request.Browser.Browser是&#34; IE&#34; IE 11和10用户代理字符串分别为9和10,当你告诉IE 11和10用户代理字符串模拟那些早期版本时。无论这种情况是否全面,我都不知道,当然用户代理字符串本质上是不值得信任的,因为它们很容易被篡改。

答案 1 :(得分:0)

Request.Browser信息来自[Framework root \ Config \ Browsers下的浏览器文件。它们已经过时了。尝试根据this link解析UA字符串。