在交换 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 版本中可用。

另请参阅