2012-05-28 14 views
6

Ecco il mio codice qui sotto:Qual è la differenza tra Request.UserAgent e Request.Browser?

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 

Qual è la differenza tra Request.UserAgent e Request.Browser?
Non riuscivo a capire quelle stringhe UserAgent!
Vuoi mostrare qualche esempio con spiegazione?

risposta

7

Request.Browser è diverso da Request.UserAgent. UserAgent ottiene la stringa raw user agent del browser client e Request.Browser ottiene le informazioni sulle funzionalità del browser. Non avrai tutte le funzionalità del browser con lo UserAgent string.

1

Request.UserAgent è un po 'criptico e richiede l'analisi per determinare quale browser, in particolare, utilizza un visitatore. Inoltre, non contiene informazioni come la versione di JavaScript sostiene il browser, o se il browser supporta CSS 2.0 di stile

La proprietà Request.Browser è un'istanza dell'oggetto HttpBrowserCapabilities fornisce tutte le informazioni ...

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

10

UserAgent fornisce una stringa grezza sul browser. Potrebbe assomigliare a questo:

User Agent :: Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1; .NET CLR 1.0.2914)

Request.Browser vi darà HttpBrowserCapabilities oggetto che avrà informazioni sulla versione del browser insieme ad alcune informazioni aggiuntive riguardanti le funzionalità del browser. Per esempio:

  1. Sia browser supporta Frames
  2. se supporta i cookie?
  3. Supporta JavaScript?
  4. Supporta le applet Java? ecc

un'occhiata al seguente codice di esempio:

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

per il confronto di versione del browser contro un agente utente, si dovrebbe usare operazioni sulle stringhe (Contiene), mentre nel caso di Request.Browser è possibile confrontare contro una proprietà.

+0

Mi chiedo se la classe HttpBrowserCapabilities sia ancora rilevante. Ho inserito questo codice in un controller insieme a molte altre proprietà che espone, quindi sono andato alla pagina in Chrome, Edge, Safari (per Windows) e Firefox. Gran parte delle informazioni restituite, come ScreenPixelsHeight = 480 e ScreenPixelsWidth = 640 erano uguali e anche errate. –

Problemi correlati