browserCaps 的 filter 的 case 元素(ASP.NET 设置架构)
[本文档仅供预览,在以后的发行版中可能会发生更改。包含的空白主题用作占位符。]
允许模式匹配在处理大量替换选项中的第一个成功匹配后停止。
备注
使用 Web.config 文件中的 browserCaps 元素来定义浏览器的行为在 .NET Framework 2.0 中被否决,但仍受支持。此元素中的数据与浏览器定义文件 (.browser) 中的信息合并在一起,这些文件位于计算机级别的 %SystemRoot%\Microsoft.NET\Framework\版本\CONFIG\Browsers 文件夹以及任何现有的应用程序级别的 App_Browsers 文件夹中。有关更多信息,请参见浏览器定义文件架构(browsers 元素)。
<case
match="regex expression"
with="regex expression"
>
[browser capability assignments, filter elements, case elements]
</case>
特性和元素
以下几节描述了特性、子元素和父元素。
特性
特性 |
说明 |
---|---|
match |
必选的 String 特性。 指定针对 with 特性测试的 .NET Framework 正则表达式。 如果忽略,则假定该匹配已成功。 |
with |
必选的 String 特性。 指定 .NET Framework 正则表达式或要搜索的字符串。 如果忽略,则使用 use 元素指定的字符串。 |
子元素
无。
父元素
元素 |
说明 |
---|---|
configuration |
指定公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。 |
system.web |
指定配置文件中 ASP.NET 配置设置的根元素,并包含用于配置 ASP.NET Web 应用程序和控制应用程序行为方式的配置元素。 |
browserCaps |
指定支持的浏览器的设置及其功能。 可以根据需要更新 browserCaps 元素以指定新的浏览器及其功能。 若要查看有效浏览器属性的列表,请参见 HttpBrowserCapabilities。 |
filter |
指定搜索字符串列表,通过这些字符串可以将各个设置分别应用于特定的浏览器定义。 |
备注
case 元素允许模式匹配在处理大量替换选项中的第一个成功匹配后停止。
所有 filter 和 case 元素都可以包含赋值语句以及其他 filter 和 case 元素。 case 与 filter 组之间的区别为:在计算 filter 组后,继续执行该组后的语句;而在成功匹配和计算 case 组后,执行跳到封闭组的结尾。
默认配置
在 .NET Framework 2.0 版中,未配置 case 元素,因为 browserCaps 元素已被否决,而改为使用浏览器定义文件来指定受支持的浏览器及其功能。 有关更多信息,请参见浏览器定义文件架构(browsers 元素)。
在 .NET Framework 1.0 和 1.1 版中,Machine.config 文件中配置的默认 case 元素太多,恕不在此列出。 若要获得浏览器数据的更新,请访问 http://www.cyscape.com/browsercaps。 定期设备更新将替代浏览器功能的此部分。
示例
下面的代码示例演示如何为任意版本的 Microsoft Internet Explorer 分析 User-Agent HTTP 标头(前提是 User-Agent 字符串的格式基本保持不变)。
此示例使用 .NET Framework 正则表达式并利用正则表达式捕获子表达式的能力,将版本号从 User-Agent 字符串直接移到 browserCaps 元素。
此文件以赋值语句的形式指定名称/值对,类似于 Microsoft Internet 信息服务 (IIS) browscap.ini 文件。 例如,"browser=IE" 行将浏览器字段的值设置为字符串 "IE"。
<configuration>
<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>
</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