在交换 EWS 持久应用程序设置
了解 EWS 托管 API 或 EWS 应用程序可用于在 Exchange 中创建持久性自定义应用程序设置的不同选项。
若要使邮箱或邮箱中的文件夹和项目保持同步的自定义客户端配置,最简单的方法是将应用程序设置存储在 Exchange 服务器上。 可以使用以下方法之一确保邮箱保留这些设置:
用户配置对象
扩展属性
自定义项
我有哪些创建持久应用程序设置的选项?
用户配置对象是存储 EWS 客户端应用程序配置设置的最佳选择。 还可以使用扩展属性或自定义项,或者三者的组合。 根据设置的范围以及你的设置是否需要供其他应用程序使用,选择你的选项。
表 1. 基于范围创建持久应用程序设置的建议选项
设置范围 | 使用。。。 | 访问者 |
---|---|---|
项目 |
现有项上的扩展属性。 |
任何 EWS 应用程序。 只有知道属性标识符的 EWS 客户端才能访问扩展属性。 |
Folder |
目标文件夹上的用户配置对象。 这是保存文件夹的视图设置的好方法。 |
任何 EWS 应用程序。 |
邮箱 |
默认 msgrootfolder 文件夹上的用户配置对象。 |
任何 EWS 应用程序。 |
用户配置对象
用户配置对象是与邮箱中的文件夹关联的特殊项目。 用户配置对象(也称为文件夹关联项目)通常是保存应用程序设置的最佳选择,尤其是当配置信息与文件夹或邮箱相关联时。 它们通常不会呈现给最终用户。 因为它们可以本机存储数据流和数据字典,因此非常适合存储配置信息。 使用用户配置对象的最佳方法是将一组配置存储在 XML 文档中,然后将该信息保存在其中一个用户配置流属性中。
访问用户配置对象的方式不同于邮箱中存储的其他项目类型。 可以使用 Folder.FindItems EWS 托管 API 方法或 FindItem EWS 操作查找所有项目,但必须使用 “关联的 搜索遍历”选项来查找用户配置对象。 关联的搜索遍历指示搜索结果应仅包含用户配置对象。 EWS 包括一组特定于用户配置对象的操作。
表 1. 用于处理用户配置对象的 EWS 操作和 EWS 托管 API 方法
若要... | 使用此 EWS 操作 | 使用此 EWS 托管 API 方法 |
---|---|---|
创建用户配置对象 |
CreateUserConfiguration 操作 |
UserConfiguration.Save |
获取用户配置对象 |
GetUserConfiguration 操作 |
UserConfiguration.Bind UserConfiguration.Load |
更新用户配置对象 |
UpdateUserConfiguration 操作 |
UserConfiguration.Update |
删除用户配置对象 |
DeleteUserConfiguration 操作 |
UserConfiguration.Delete |
注意
使用 EWS 创建的用户配置对象具有以“IPM”开头的 ItemClass 前缀。Configuration.”。 用户配置对象的 ItemClass 是用户配置对象前缀和用户配置对象名称。 可以使用 Item.ItemClass EWS 托管 API 属性或 ItemClass EWS 元素搜索已定义的用户配置对象。
扩展属性
如果要存储项的配置信息,请使用 扩展属性 。 与 MAPI 不同,EWS 不会返回项的属性包。 这意味着 EWS 客户端必须知道扩展属性标识符才能查找和访问扩展属性。 如果需要将配置信息存储在用户配置对象以外的项目上,则使用扩展属性创建自定义属性可能是适合你的解决方案。 扩展属性使你能够访问和存储不属于项的标准属性集的属性的信息。
重要
Exchange 数据库架构具有有限数量的属性。 Exchange 数据库的属性标识符的最大数目为 32,767。 如果使用扩展属性来存储许多设置,我们建议使用单个扩展属性来存储这些设置,以免超过此最大值。
可以使用 Item.Update EWS 托管 API 方法或 UpdateItem EWS 操作在用户配置对象上设置扩展属性。
自定义项
自定义项还可用于存储信息。 可以重新调整现有项属性,以包含配置信息。 或者,可以使用扩展属性为应用程序定义自己的属性。 使用自定义项存储配置具有以下优势:
它们适用于支持 EWS 的所有 Exchange 版本。
如果不对项目使用扩展属性,则不收取 Exchange 属性的预算。
应将应用程序设置存储在何处?
邮箱文件夹及其中的项目位于根邮件文件夹中。 此文件夹由 EWS 托管 API 中的 WellKnownFolderName.msgfolderroot 值标识。 在 MAPI 术语中,这相当于邮箱的 IPM 子树。 用户配置对象通常用于创建基于 UI 的设置,以便应用程序可以根据用户访问的文件夹呈现视图设置。 基于文件夹的视图设置通常在与文件夹关联的用户配置对象上设置。 但有时,你可能希望对应用程序设置全局。 在这种情况下,可以将设置存储在根邮件文件夹中。
大多数用户不知道根邮箱文件夹,并且通常不会访问根邮箱文件夹。 此文件夹由 EWS 托管 API 中的 WellKnownFolderName.root 值标识。 在 MAPI 术语中,这等效于邮箱的非 IPM 子树。 最终用户不直接访问的信息存储在根邮箱文件夹中。 你可能想要将应用程序设置存储在此文件夹中,因为客户端应用程序通常不会访问它。
版本差异
用户配置对象在 Exchange Online、Exchange Online 作为Office 365的一部分以及从 Exchange 2010 开始的 Exchange 版本中可用。