browserCaps 元素(ASP.NET 设置架构)
[本文档仅供预览,在以后的发行版中可能会发生更改。包含的空白主题用作占位符。]
指定所支持的浏览器及其功能的设置。 可以根据需要更新 browserCaps 元素以指定新的浏览器及其功能。
备注
使用 Web.config 文件中的 browserCaps 元素来定义浏览器的行为在 .NET Framework 2.0 中被否决,但仍受支持。此元素中的数据与浏览器定义文件 (.browser) 中的信息合并在一起,这些文件位于计算机级别的 %SystemRoot%\Microsoft.NET\Framework\版本\CONFIG\Browsers 文件夹以及任何现有的应用程序级别的 App_Browser 文件夹中。有关更多信息,请参见浏览器定义文件架构(browsers 元素)。
<browserCaps>
<result />
<use />
[browser capability property assignments]
<filter>...</filter>
</browserCaps>
特性和元素
以下几节描述了特性、子元素和父元素。
特性
特性 |
说明 |
---|---|
userAgentCacheKeyLength |
可选的 String 特性。 指定浏览器标识字符串的长度,该标识字符串要用作内部缓存中的缓存浏览器功能对象的键。 有关浏览器功能对象的更多信息,请参见 浏览器定义文件架构(browsers 元素)。 此特性是 .NET Framework 2.0 版中的新特性。 默认值为 "64"。 |
子元素
元素 |
说明 |
---|---|
filter |
可选元素。 指定搜索字符串列表,通过这些字符串可以将各个设置分别应用于特定的浏览器定义。 |
result |
指定 HttpCapabilitiesBase 派生类,该类用于保存 browserCaps 节的分析结果。 这些功能针对各个浏览器存储为键/值字符串对。 此元素在 .NET Framework 2.0 版中仍然适用。 |
use |
指定 HTTP 请求字符串,该字符串用于分析存储在 filter 和 case 元素中的浏览器功能信息。 |
父元素
元素 |
说明 |
---|---|
configuration |
指定公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。 |
system.web |
指定配置文件中 ASP.NET 配置设置的根元素,并包含用于配置 ASP.NET Web 应用程序和控制应用程序行为方式的配置元素。 |
备注
browserCaps 元素指定所支持的浏览器及其功能的设置。 可以根据需要更新 browserCaps 元素以指定新的浏览器及其功能。
若要查看有效浏览器属性的列表,请参见 HttpBrowserCapabilities。
capsVariableName=正则表达式形式的行是赋值语句。 在 match 特性中和赋值语句右侧使用语法 %{capsVariableName} 或 ${captureGroupName}。
有关如何使用正则表达式的更多信息,请参见 .NET Framework 正则表达式。 若要查看完整的 browserCaps 节以及关于此语法的完整示例,请参见随 .NET Framework 一起安装的 Machine.config 文件。
用 capsVariableName 捕获的名称/值对可以通过从 HttpCapabilitiesBase 类继承的 HttpBrowserCapabilities 对象的 Item 属性进行访问。 Item 属性在 C# 中是默认的索引器属性。
默认配置
在 .NET Framework 2.0 版中,在根 Web.config 文件中配置了以下默认 browserCaps 元素,但该元素在使用上有一定的限制,因为该元素已被否决,而改为使用浏览器定义文件来指定受支持的浏览器及其功能。 有关更多信息,请参见浏览器定义文件架构(browsers 元素)。
<browserCaps userAgentCacheKeyLength="64">
<result
type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
/>
</browserCaps>
在 .NET Framework 1.0 版和 1.1 版中,machine.config 文件中配置的默认 browserCaps 元素太多,恕不在此列出。 若要获得浏览器数据的更新,请访问 http://www.cyscape.com/browsercaps。 定期设备更新将替代浏览器功能的此部分。
示例
下面的代码示例演示如何为任意版本的 Microsoft Internet Explorer 分析 User-Agent HTTP 标头(前提是 User-Agent 字符串的格式基本保持不变)。
此示例使用 .NET Framework 正则表达式,并且利用正则表达式捕获子表达式的能力,将版本号从 User-Agent 字符串直接移到 HttpBrowserCapabilities 对象。
此文件以赋值语句的形式指定名称/值对,类似于 Microsoft Internet 信息服务 (IIS) browscap.ini 文件。 例如,"browser=IE" 行将浏览器字段的值设置为字符串 "IE"。
<configuration>
<system.web>
<browserCaps>
<result type="System.Web.HttpBrowserCapabilities, System.Web"/>
<use var="HTTP_USER_AGENT"/>
browser=Unknown
version=0.0
majorversion=0
minorversion=0
frames=false
tables=false
cookies=false
backgroundsounds=false
<filter>
<case match="^Mozilla[^(]*\(compatible; MSIE
(?'ver'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))
(?'extra'.*)">
browser=IE
version=${ver}
majorver=${major}
minorver=${minor}
<case match="^2\." with="%{version}">
tables=true
cookies=true
backgroundsounds=true
<case match="2\.5b" with="%{version}">
beta=true
</case>
</case>
</case>
</filter>
</browsercaps>
</system.web>
</configuration>
元素信息
配置节处理程序 |
|
配置成员 |
|
可配置的位置 |
Machine.config 根级别的 Web.config 应用程序级别的 Web.config 虚拟或物理目录级别的 Web.config |
要求 |
Microsoft Internet 信息服务 (IIS) 版本 5.0、5.1 或 6.0 .NET Framework 版本 2.0(已否决)、1.1 或 1.0 Microsoft Visual Studio 2003 或 Visual Studio 2005 |
请参见
任务
How to: Detect Browser Types in ASP.NET Web Pages
How to: Configure Specific Folders Using Location Settings
How to: Lock ASP.NET Configuration Settings
参考
browserCaps 的 filter 元素(ASP.NET 设置架构)
browserCaps 的 result 元素(ASP.NET 设置架构)
browserCaps 的 use 元素(ASP.NET 设置架构)
HttpCapabilitiesSectionHandler
概念
ASP.NET Server Controls and Browser Capabilities
ASP.NET Configuration File Hierarchy