ASP.Net有很好的机制来识别用户的浏览器: 用Request.Browser就可以拿到一个HttpBrowserCapabilities,然后用相应的属性可以取到值,比较浏览器类型,屏幕大小,JS支持等等。对于移动设备更可以这么用,很容易拿到需要的属性(当然ASP.Net自带的浏览器库还是很不全)。
但是怎样在WinApp里根据UserAgent识别浏览器呢?我通过Reflector看到主要是在BrowserCapabilitiesFactory这个类中对浏览器的Capability进行设置,于是把里面的一部分代码拿出来,发现果然可以用:

2

3

4

5

6

7

8

9

10

这样在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目录下运行:
这样在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers目录下可以拿到一个ASP.BrowserCapsFactory.dll。
4、在你的应用程序里引用App_Browsers.dll和ASP.BrowserCapsFactory.dll,把最上面那段代码中的BrowserCapabilitiesFactory f = new BrowserCapabilitiesFactory();改成:
就可以在你的应用程序里用UA识别出浏览器了!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2005-01-06 C++文件流操作备忘录
2005-01-06 AOC的服务还不错