程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 在應用程序裡識別UserAgent對應的浏覽器

在應用程序裡識別UserAgent對應的浏覽器

編輯:關於ASP.NET

ASP.Net有很好的機制來識別用戶的浏覽器: 用Request.Browser就可以拿到一個 HttpBrowserCapabilities,然後用相應的屬性可以取到值,比較浏覽器類型,屏幕大小,JS支持等等。 對於移動設備更可以這麼用,很容易拿到需要的屬性(當然ASP.Net自帶的浏覽器庫還是很不全)。

但是怎樣在WinApp裡根據UserAgent識別浏覽器呢?我通過Reflector看到主要是在 BrowserCapabilitiesFactory這個類中對浏覽器的Capability進行設置,於是把裡面的一部分代碼拿出來 ,發現果然可以用: 

1string UA = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 

2.0.50727; .NET CLR 3.0.04506; .NET CLR 1.1.4322; InfoPath.2; MS-RTC LM 8)";
2
3BrowserCapabilitiesFactory f = new BrowserCapabilitiesFactory();
4HttpBrowserCapabilities browserCaps = new HttpBrowserCapabilities();
5Hashtable hashtable = new Hashtable(180, StringComparer.OrdinalIgnoreCase);
6hashtable[string.Empty] = UA;
7browserCaps.Capabilities = hashtable;
8NameValueCollection headers = new NameValueCollection();
9
10f.ConfigureBrowserCapabilities(headers, browserCaps);

這樣在browserCaps類裡拿到浏覽器的各種屬性。

更進一步,因為ASP.Net自帶的BrowserCapabilities太少,如果要自己為應用程序加一些UA的識別, 特別是移動設備等,可以用.Net 2.0支持的Browser添加機制(大概微軟會發布一些最新移動設備 的.Browser文件)。具體方法如下:

1、用VS新建一個Website,"Add ASP.Net Folder" - "App_Browsers",把下載到或自己寫的.Browser 文件放到裡面。

2、Publish Web Site, 到編譯出來的目錄下找到bin目錄,有一個App_Browsers.dll。

3、到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目錄下運行:

aspnet_regbrowsers.exe -i

這樣在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers目錄下可以拿到一個 ASP.BrowserCapsFactory.dll。

4、在你的應用程序裡引用App_Browsers.dll和ASP.BrowserCapsFactory.dll,把最上面那段代碼中的 BrowserCapabilitiesFactory f = new BrowserCapabilitiesFactory();改成:

ASP.ApplicationBrowserCapabilitiesFactory f = new ASP.ApplicationBrowserCapabilitiesFactory();

就可以在你的應用程序裡用UA識別出浏覽器了!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved