UserAgent podaje surowy ciąg o przeglądarce. To może wyglądać następująco:
User Agent :: Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1; .NET CLR 1.0.2914)
Request.Browser daje HttpBrowserCapabilities przedmiot która będzie zawierać informacje o wersji przeglądarki wraz z dodatkowymi informacjami na temat możliwości przeglądarki. Na przykład:
- czy przeglądarka obsługuje ramek
- czy obsługuje pliki cookie?
- Obsługa JavaScriptów?
- Obsługuje aplety Java? itp
Spójrz na poniższy kod przykładowy:
HttpBrowserCapabilities bc = Request.Browser;
Response.Write("<p>Browser Capabilities:</p>");
Response.Write("Type = " + bc.Type + "<br>");
Response.Write("Name = " + bc.Browser + "<br>");
Response.Write("Version = " + bc.Version + "<br>");
Response.Write("Major Version = " + bc.MajorVersion + "<br>");
Response.Write("Minor Version = " + bc.MinorVersion + "<br>");
Response.Write("Platform = " + bc.Platform + "<br>");
Response.Write("Is Beta = " + bc.Beta + "<br>");
Response.Write("Is Crawler = " + bc.Crawler + "<br>");
Response.Write("Is AOL = " + bc.AOL + "<br>");
Response.Write("Is Win16 = " + bc.Win16 + "<br>");
Response.Write("Is Win32 = " + bc.Win32 + "<br>");
Response.Write("Supports Frames = " + bc.Frames + "<br>");
Response.Write("Supports Tables = " + bc.Tables + "<br>");
Response.Write("Supports Cookies = " + bc.Cookies + "<br>");
Response.Write("Supports VB Script = " + bc.VBScript + "<br>");
Response.Write("Supports JavaScript = " + bc.JavaScript + "<br>");
Response.Write("Supports Java Applets = " + bc.JavaApplets + "<br>");
Response.Write("Supports ActiveX Controls = " + bc.ActiveXControls + "<br>");
Response.Write("CDF = " + bc.CDF + "<br>");
do porównywania wersji przeglądarki przeciwko agenta użytkownika, trzeba by użyć operacji String (Zawiera), natomiast w przypadku Request.Browser
można porównać przeciwko własności.
Zastanawiam się, czy klasa HttpBrowserCapabilities jest nadal istotna. Umieściłem ten kod w kontrolerze wraz z wieloma innymi właściwościami, które on eksponuje, a następnie przeszedłem na stronę w Chrome, Edge, Safari (dla Windows) i Firefox. Znaczna część zwróconych informacji, takich jak ScreenPixelsHeight = 480 i ScreenPixelsWidth = 640, była taka sama, a także niepoprawna. –