您可以通过在 machine.config/web.config 文件中添加/扩展 browserCaps 配置部分来扩展 HttpBrowserCapabilities。例如,要更准确地检测操作系统版本,请在配置文件中添加如下内容:
<system.web>
<browserCaps>
<use var="HTTP_USER_AGENT" />
<filter>
<case match="Windows NT 6.1">
platform=Windows7
</case>
</filter>
</browserCaps>
</system.web>
如果您使用在 Windows 7 上运行的 Mozilla (UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1") 访问该网站,您将看到 Request.Browser .Platform 将显示“Windows7”。有关详细信息,请参见此处:http: //msdn.microsoft.com/en-us/library/sk9az15a%28v=vs.71%29.aspx
在 browserCaps 部分添加一个正则表达式以匹配 WOW64 字符串,以检测客户端平台是否为 64 位(我不确定 WOW64 等效项对于在 64 位上运行的非 Windows 平台是什么)。
...当然,通过在元素中使用正则表达式,除了自己实际解析 UserAgent 字符串之外,您什么也没做。但是,您可以在网络上轻松找到预定义的 browseCaps(例如http://owenbrady.net/browsercaps/CodeProject.xml)。
请记住,即使此功能非常强大,它仍然不是 100% 准确的。例如,Windows 7 和 Windows Server 2008 R2 都将返回 Windows NT 6.1 作为平台。