В чем разница между запросом.UserAgent и запрос.Браузер?

вот мой код ниже :

    User_Info.Add(!string.IsNullOrEmpty(Request.UserAgent) ? Request.UserAgent : string.Empty);//4:UserAgent

    HttpBrowserCapabilities browser = Request.Browser;
    User_Info.Add(!string.IsNullOrEmpty(browser.Browser) ?  "Name : " + browser.Browser + " | " +
                                                            "Type : " + browser.Type + " | " +
                                                            "MajorVersion  : " + browser.MajorVersion + " | " +
                                                            "MinorVersion  : " + browser.MinorVersion : string.Empty);//5:UserBrowser

в чем разница между запросом.UserAgent и запрос.Браузер?
Я не мог понять эти строки UserAgent!
Не могли бы вы привести несколько примеров с объяснением?

3 ответов


запрос.Браузер отличается от запроса.UserAgent. UserAgent получает необработанную строку агента пользователя браузера клиента и запрос.Браузер получает информацию о возможностях браузера. Вы не получите все возможности браузера с строка UserAgent.


UserAgent дает вам необработанную строку о браузере. Это может выглядеть так:

агент пользователя:: Mozilla / 4.0 (совместимый; MSIE 6.0 b; Windows NT 5.1; .NET CLR 1.0.2914)

запрос.Браузер даст вам объект HttpBrowserCapabilities, который будет иметь информацию о версии браузера вместе с некоторой дополнительной информацией о возможностях браузера. Например:

  1. ли браузер поддерживает фреймы
  2. если он поддерживает cookies ?
  3. Поддерживает JavaScripts ?
  4. Поддерживает Java-Приложения ? так далее.

посмотрите на следующий код:

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>");

для сравнения версии браузера с агентом пользователя вам придется использовать строковые операции (Contains), тогда как в случае Request.Browser вы можете сравнить со свойством.


Request.UserAgent немного загадочно и требует разбора, чтобы определить, какой браузер, в частности, использует посетитель. Кроме того, он не содержит информации о том, какую версию JavaScript поддерживает браузер, или если браузер поддерживает таблицы стилей CSS 2.0

на Request.Browser свойство является экземпляром HttpBrowserCapabilities объект предоставляет всю информацию...

Ref:http://www.4guysfromrolla.com/articles/120402-1.aspx