允许按顺序应用多个规则。
配置结构的示例:
<configuration>
<system.web>
<browserCaps>
<filter>
<filter>
[assignments, filter elements and case elements]
<filter>
<filter match="[regular expression]" with="[regular expression]" >
[assignments, filter elements and case elements]
</filter>
<filter>
<case match="[regular expression]" with="[regular expression]" >
[assignments, filter elements and case elements]
</case>
</filter>
属性 | 描述 |
---|---|
match | 用来与 with 属性相比较的 .NET Framework 正则表达式。如果省略,则假定匹配成功。 |
with | 要搜索的 .NET Framework 正则表达式或字符串。如果省略,则使用由 <use> 元素指定的字符串。 |
子标记 | 描述 |
---|---|
<case> | 允许在多个选项中第一次成功匹配之后停止模式匹配。 |
下例演示了如何对任意版本的 Internet Explorer 的 User-Agent HTTP 头进行分析(只要 User-Agent 字符串的格式大致保持不变)。
本例使用了 .NET Framework 正则表达式,并通过正则表达式的子表达式捕获功能来将版本号从 User-Agent 字符串直接移动到 browser caps 对象中。
该文件以赋值语句的形式指定名称/值对,类似于 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>