2012-05-28 8 views
6

は、以下の私のコードです:Request.UserAgentと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 

Request.UserAgentとRequest.Browserの違いは何ですか?
これらのUserAgent文字列を理解できませんでした。
いくつか例を説明してくださいますか?

答えて

7

Request.BrowserはRequest.UserAgentとは異なります。 UserAgentはクライアントブラウザの生のユーザーエージェント文字列を取得し、Request.Browserはブラウザ機能に関する情報を取得します。あなたはUserAgent stringですべてのブラウザ機能を手に入れません。

1

Request.UserAgentは少し謎めいており、どのブラウザ、具体的には訪問者が使用しているかを判断するために解析が必要です。さらに、それは...

をブラウザがサポートしている、またはブラウザがCSSをサポートしている場合2.0スタイルシート

Request.Browserプロパティは、HttpBrowserCapabilitiesオブジェクトのインスタンスは、すべての情報を提供しているのJavaScriptのバージョンなどの情報が含まれていませんRef:http://www.4guysfromrolla.com/articles/120402-1.aspx

10

UserAgentは、ブラウザについての生の文字列を提供します。それは次のようになります。

ユーザーエージェント::のMozilla/4.0(互換; MSIE 6.0bを、Windows NTの5.1; .NET CLR 1.0.2914)

Request.BrowserをあなたにHttpBrowserCapabilitiesを与えるオブジェクトブラウザのバージョン情報と、ブラウザの機能に関する追加の情報が表示されます。たとえば、次のように

  1. それはクッキーをサポートしている場合は、ブラウザがフレーム
  2. をサポートしているかどうか?
  3. JavaScriptをサポートしていますか?
  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>"); 

、あなたは文字列操作を使用する必要があります(入って)、Request.Browserの場合、あなたは比較することができ、一方、財産に対して

+0

HttpBrowserCapabilitiesクラスがまだ関連しているのだろうかと思います。このコードをコントローラに入れ、公開する他の多くのプロパティとともに、Chrome、Edge、Safari(Windowsの場合)、Firefoxのページに移動しました。 ScreenPixelsHeight = 480やScreenPixelsWidth = 640など、返される情報の多くは同じで、間違っていました。 –

関連する問題