Server-side-Erkennung, wenn der browser Internet Explorer in ASP.NET Kern
Ich bin versucht zu ermitteln, ob der browser Internet Explorer in ASP.NET Kern auf der server-Seite.
In früheren ASP.NET 4 version in meinem cshtml:
@if (Request.Browser.Browser == "IE")
{
//show some content
}
aber in ASP.NET 5/ASP.NET-Core-intellisense für Context.Request
nicht eine option für Browser
Bekomme ich den UserAgent, aber das scheint mir Recht Komplex, da der IE hat einige viele Arten von strings
Context.Request.Headers["User-Agent"]
für Internet Explorer 11.0 bekomme ich
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
wodurch es sehr schwierig zu bestimmen, jede vergangene, gegenwärtige oder zukünftige IE-Versionen aus.
- Der Grund, warum das IE-team verändert die Benutzer-agent-Zeichenfolge für IE11 wurde, um zu versuchen zu verhindern, dass die Menschen schnüffeln für den IE. Für zukünftige Versionen, entweder werden Sie erfolgreich sein, mit diesem Versuch, Ende der browser-sniffing (d.h. Sie werden scheitern mit Ihrer Aufgabe bei der hand), oder Sie haben werde, um weitere änderungen zu besiegen Sie Ihre aktuelle sniffing-Techniken, wenn Sie populär geworden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fühle ich mich verpflichtet zu sagen, dass es in der Regel am besten, um zu versuchen zu vermeiden, server-side browser sniffing, wenn Sie können. Aber ich bin völlig bewusst, dass es manchmal hilfreich sein kann. So...
Basierend auf dieser Liste http://www.useragentstring.com/pages/useragentstring.php?name=Internet+Explorer es sieht aus wie UserAgent für fast alle Versionen von Internet Explorer enthalten MSIE also wäre die primäre Sache, die Sie möchten, zu suchen.
Interessant, wenn man über diese Liste von IE-user-Agenten, der user-agent Sie beobachtet ist Sie eine der wenigen, die nicht enthalten MSIE. Wenn Sie das Kontrollkästchen für die Anwesenheit von MSIE oder Dreizack in der user-agent, die sollte ziemlich gut für die Identifizierung aller Fälle von Internet Explorer.
(Trident ist die layout-engine, die Befugnisse der Internet Explorer und es ist nur für Internet Explorer)
So zum Beispiel der code, um zu bestimmen, ob der browser IE ist, könnte wie folgt geschrieben werden:
Sind, und dies könnte genannt werden innerhalb der Steuerung wie diese:
Habe ich in eine extension-Methode, um festzustellen, ob:
Verwendung:
(Basierend auf Ron C ' s Antwort)