0

Ich unterstütze eine ASP.NET MVC-Site, die Benutzer auf eine Fehlerseite umleitet, wenn sie auf IE7 oder früher sind.Erkennen von IE10 und älter in ASP.NET

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

Ich muss jetzt eine Änderung vornehmen, um Benutzer auf eine Fehlerseite umzuleiten, wenn sie IE10 oder früher verwenden. Ich weiß, dass ich, um IE8 zu erkennen, einfach MajorVersion gleich 8 überprüfen müsste, aber ich war nicht in der Lage, eine Dokumentation über die Verwendung von Request.Browser zur Erkennung von IE9 und IE10 zu finden.

Vielleicht ist es ausreichend, nach MajorVersion zu suchen, das kleiner oder gleich 10 ist. Allerdings weiß ich für IE11, Request.Browser.Browser gibt "InternetExplorer" statt "IE" zurück, und ich konnte keine definitive Antwort darauf finden, was IE9 und 10 für Browser zurückgeben. Auch bei den Vertrauensfragen, die IE mir gegeben hat, fühle ich mich nicht sicher, wenn IE9 und 10 MajorVersion auf 9 und 10 setzen. Weiß jemand genau, was Request.Browser.Browser und Request.MajorVersion für IE9 und 10 enthält?

Antwort

0

Ich kann bestätigen, dass Request.Browser.Browser ist "IE" und Request.Browser.MajorVersion ist 9 bzw. 10 für die IE 9 und 10 User-Agent-Zeichenfolgen IE 11 verwendet, wenn Sie sagen, dass sie diese früheren Versionen zu emulieren. Ob das umfassend ist oder nicht, weiß ich nicht, und natürlich sind User-Agent-Strings von Natur aus nicht vertrauenswürdig, da sie leicht manipulierbar sind.

0

Request.Browser info ist aus den Browser-Dateien unter [Framework root \ Config \ Browsers. Sie sind veraltet. Versuchen Sie, die UA-Zeichenfolge basierend auf this link zu analysieren.