快速业务通道

在应用程序里识别UserAgent对应的浏览器

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19

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识别出浏览器了!

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号