Web 應用可用 Request.Browser 取得 HttpBrowserCapabilities,判斷瀏覽器類型、螢幕大小、JS 支援等。但內建瀏覽器定義檔較舊,行動裝置支援不足。
透過反射 BrowserCapabilitiesFactory,手動建立 HttpBrowserCapabilities 並注入 UserAgent 字串:
string UA = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; ...)"; BrowserCapabilitiesFactory f = new BrowserCapabilitiesFactory(); HttpBrowserCapabilities browserCaps = new HttpBrowserCapabilities(); Hashtable hashtable = new Hashtable(180, StringComparer.OrdinalIgnoreCase); hashtable[string.Empty] = UA; browserCaps.Capabilities = hashtable; NameValueCollection headers = new NameValueCollection(); f.ConfigureBrowserCapabilities(headers, browserCaps);
執行後 browserCaps 即包含解析出的瀏覽器屬性。
App_Browsers 資料夾,放入 .browser 定義檔。bin\App_Browsers.dll。aspnet_regbrowsers.exe -i 產生 ASP.BrowserCapsFactory.dll。ASP.ApplicationBrowserCapabilitiesFactory。即可在非 Web 環境使用最新瀏覽器定義識別 UserAgent。