注册项属性
wss 窗体注册表由注册项组成,而注册项由一组与被请求的项目或文件夹相关的属性以及用户环境的属性组成。本节中,我们将详细说明组成注册项的各种属性。
注册示例
了解注册的最佳途径是参考示例以及针对各个部分的说明。以下是使用 xml 定义的注册示例。(有关使用 xml 的详细信息,请参阅 xml developer center。)
<?xml version="1.0"?>
<g:propertyupdate xmlns:g="dav:"
xmlns:form="urn:schemas-microsoft-com:office:forms">
<g:set>
<g:prop>
<g:contentclass>
urn:schemas-microsoft-com:office:forms#registration
</g:contentclass>
<form:request>get</form:request>
<form:cmd>new</form:cmd>
<form:browser>*</form:browser>
<form:version>*</form:version>
<form:majorver>*</form:majorver>
<form:minorver>*</form:minorver>
<form:platform>*</form:platform>
<form:language>*</form:language>
<form:contentclass>urn:content-classes:folder</form:contentclass>
<form:contentstate>*</form:contentstate>
<form:messagestate>*</form:messagestate>
<form:executeurl>form.asp</form:executeurl>
<form:formurl>form.asp</form:formurl>
<form:executeparameters></form:executeparameters>
<form:binding>server</form:binding>
</g:prop>
</g:set>
</g:propertyupdate>
下表描述了注册示例中使用的每个域。
| 属性名 | 说明 |
| request | “请求属性”引用请求中使用的 http 方法。仅支持 get 和 post。不能将窗体注册表用于覆盖其他任意方法。 |
| cmd | 该域引用 url 查询字符串中使用的“cmd”选项。例如:http://server/public/folder/item.eml?cmd=open。 |
| contentclass | 必选属性。该属性引用被请求项目的内容类。它必须与注册精确匹配,以便与请求匹配。 |
| browser | 客户端使用的浏览器。例如 internet explorer 或 netscape。可以使用 user-agent 报头在 browscap.ini 文件中查找该信息。 |
| version | 客户端使用的浏览器版本。例如:internet explorer 5.01,version = "5.01"。 |
| majorver | web 浏览器版本的主版本号。例如:netscape 4.76,majorver = 4 |
| minorver | web 浏览器版本的次版本号。例如:netscape 4.76,minorver = 76 |
| platform | 客户端使用的操作系统。可以使用 user-agent 报头在 browscap.ini 文件中查找该信息。例如:winnt |
| language | 该属性引用浏览器发送的 accept-language 报头中的客户端浏览器语言。可以根据语言的精确程度以及用户的首选项,使用最佳匹配算法来查找相应的注册项。只能为每个注册项指定一种语言。 |
| contentstate | 该属性与项目的内容状态属性相匹配。它是字符串值,因此易于在工作流类型的应用程序中使用。 |
| messagestate | 该属性引用项目的邮件状态。通常,应用程序优先采用内容状态。 |
| executeurl | 对于服务器绑定,该属性必须设置为一个 url,该 url 引用处理请求时执行的 isapi 或脚本映射文件(如 asp 脚本)。 |
| formurl | 必选属性。它必须是一个指向 exchange 虚拟根目录中的 html 窗体或 asp 的 url。 |
| executeparameters | 该执行参数附加到重定向至 executeurl 时使用的查询字符串。它允许传入附加选项来定制如何处理请求。 |
| binding | 绑定可以是“服务器”、“客户端”或“webclient”之一。在服务器绑定中,执行 executeurl。对于客户端绑定,formurl 直接发送到客户端。对于 webclient 绑定,owa 执行项目处理操作。 |
属性优先级
搜索文件夹中的注册项查找最佳匹配时,所有可能的匹配值都具有一个相对重要级别。最高优先次序是基于在注册项中指定的属性。它们的相对重要级别如下所示:
- request
- cmd
- messagestate
- contentstate
- browser
- version
- platform
- majorver
- minorver
- language
对于 majorver 和 minorver 属性,表达式的优先次序如下:=,<=,>=,<,>
当找不到精确匹配时,可以在注册项中使用通配符 (*)。注册表不支持在一个值后面输入通配符,例如“foo*”。
空值的优先级最低。如果未使用属性,建议不要在注册项中使用属性,也不要使用通配符。
注册表语言备用
当 web 浏览器发出请求时,它将发送一个 accept-language 报头,其中包含一个或多个用户希望使用的语言。检查下列请求:
get / http/1.1
host: server
accept-language: en-us,ja;q=0.8,fr;q=0.5,de;q=0.3
在本示例中,“en-us”具有最高的优先级,以后依次是“ja”、“fr”和“de”。如果已将窗体注册设置为 language=en,则它可以与该请求匹配,但指定 language=en-us 的注册的优先级更高。
注册表服务器绑定
使用服务器绑定时,注册表将请求处理传送到 isapi 扩展或具有相关脚本映射的文件(如 asp.dll)。然后,它将新查询字符串与某些特定参数一起处理。下表对这些参数进行了说明。
表 2:服务器绑定参数
| 参数 | 说明 |
| formurl | utf-8 编码的 url,指向 exchange 存储中的窗体。在注册项中指定。 |
| dataurl | utf-8 编码的 url,指向 exchange 存储中被请求的数据项。 |
| regurl | utf-8 编码的 url,指向 exchange 存储中与请求相匹配的注册项。 |
| executeparameters | 窗体注册项的 executeparameters 属性的内容。 |
| webformsbrowserflags | browscap.ini 文件中,与请求的浏览器 user-agent 字符串匹配的 webformsbrowserflags 属性的内容。 |