操作说明:启用文档跟踪和撤销
重要
2020 年 3 月之前发布的 Microsoft Rights Management Service SDK 版本已弃用;使用早期版本的应用程序必须更新为使用 2020 年 3 月版本。 有关完整详细信息,请参阅 弃用通知。
Microsoft Rights Management Service SDK 没有进一步增强功能。 强烈建议采用用于分类、标记和保护服务的 Microsoft 信息保护 SDK。
本主题涵盖实现文档内容跟踪的基本指导,并提供用于元数据更新和为应用创建“跟踪使用情况按钮(#跟踪使用情况按钮)”的示例代码。
实现文档跟踪的步骤
步骤 1 和步骤 2 可允许跟踪文档。 第 3 步可允许应用用户访问文档跟踪站点,以便跟踪和撤销受保护的文档。
- 添加文档跟踪元数据
- 向 RMS 服务注册文档
- 向应用添加“跟踪使用情况”按钮
这些步骤的实现详细信息如下。
1.添加文档跟踪元数据
文档跟踪是 Rights Management 系统的一个功能。 通过在文档保护过程中添加特定的元数据,可以使用提供多个跟踪选项的跟踪服务门户来注册文档。
使用此 API 添加/更新具有文档跟踪元数据的内容许可证。
在操作上,只有 内容名称 和 通知类型 属性对于文档跟踪是必需的。
-
我们期望你能设置所有元数据属性。 就是以下这些按类型列出的属性。
有关详细信息,请参阅许可证元数据属性类型。
IPC_MD_CONTENT_PATH
用于标识跟踪的文档。 如果完整的路径不可用,则只需提供文件名。
IPC_MD_CONTENT_NAME
用于标识跟踪的文档名称。
IPC_MD_NOTIFICATION_TYPE
用于指定发送通知的时间。 有关详细信息,请参阅“通知类型”。
IPC_MD_NOTIFICATION_PREFERENCE
用于指示通知的类型。 有关详细信息,请参阅通知偏好设置。
IPC_MD_DATE_MODIFIED
我们建议在每次用户单击“保存”时设置此日期。
IPC_MD_DATE_CREATED
用于设置文件的发放日期
使用其中一个合适的 API 将元数据添加到文件或流中。
最后,使用此 API 注册具有跟踪系统的跟踪文档。
2.将文档注册到 RMS 服务
以下是代码段,显示了设置文档跟踪元数据的示例和对跟踪系统中注册的调用。
C++:
HRESULT hr = S_OK;
LPCWSTR wszOutputFile = NULL;
wstring wszWorkingFile;
IPC_LICENSE_METADATA md = {0};
md.cbSize = sizeof(IPC_LICENSE_METADATA);
md.dwNotificationType = IPCD_CT_NOTIFICATION_TYPE_ENABLED;
md.dwNotificationPreference = IPCD_CT_NOTIFICATION_PREF_DIGEST;
//file origination date, current time for this example
md.ftDateCreated = GetCurrentTime();
md.ftDateModified = GetCurrentTime();
LOGSTATUS_EX(L"Encrypt file with official template...");
hr =IpcfEncryptFileWithMetadata( wszWorkingFile.c_str(),
m_wszTestTemplateID.c_str(),
IPCF_EF_TEMPLATE_ID,
0,
NULL,
NULL,
&md,
&wszOutputFile);
/* This will contain the serialized license */
PIPC_BUFFER pSerializedLicense;
/* the context to use for the call */
PCIPC_PROMPT_CTX pContext;
wstring wstrContentName("MyDocument.txt");
bool sendLicenseRegistrationNotificationEmail = FALSE;
hr = IpcRegisterLicense( pSerializedLicense,
0,
pContext,
wstrContentName.c_str(),
sendLicenseRegistrationNotificationEmail);
向应用添加跟踪使用情况按钮
向应用添加跟踪使用情况 UI 项非常简单,使用以下任一 URL 格式即可:
使用内容 ID
如果许可证已序列化,请使用 IpcGetLicenseProperty 或 IpcGetSerializedLicenseProperty 获取内容 ID,并使用许可证属性 IPC_LI_CONTENT_ID。 有关详细信息,请参阅许可证属性类型。
使用 ContentId 和 颁发者 元数据时,使用以下格式:
https://track.azurerms.com/#/{ContentId}/{Issuer}
示例 -
https://track.azurerms.com/#/summary/05405df5-8ad6-4905-9f15-fc2ecbd8d0f7/janedoe@microsoft.com
如果你无权访问该元数据 (,即检查文档) 的未受保护的版本,则可以使用以下格式Content_Name:
https://track.azurerms.com/#/?q={ContentName}
客户端只需要使用适当的 URL 打开浏览器。 RMS 文档跟踪门户将处理身份验证和任何所需重定向。