如何:啟用文件追蹤和撤銷

重要

2020 年 3 月之前發行的 Microsoft Rights Management Service SDK 版本已被取代;使用舊版的應用程式必須更新為使用 2020 年 3 月版本。 如需完整詳細資料,請參閱 淘汰通知

Microsoft Rights Management Service SDK 沒有進一步的增強功能。 我們強烈建議採用Microsoft 資訊保護 SDK來分類、標記和保護服務。

本主題涵蓋實作內容文件追蹤的基本指導,以及用於中繼資料更新和建立應用程式 [追蹤使用情況] 按鈕的範例程式碼。

實作文件追蹤的步驟

步驟 1 和 2 讓文件可供追蹤。 步驟 3 讓您的應用程式使用者能夠連線到文件追蹤網站,以便追蹤及撤銷您受保護的文件。

  1. 新增文件追蹤中繼資料
  2. 使用 RMS 服務註冊文件
  3. 將 [追蹤使用情況] 按鈕加入您的應用程式中

這些步驟的實作詳細資料如下。

1.新增檔追蹤中繼資料

文件追蹤是 Rights Management 系統的功能。 藉由在文件保護程序期間新增特定中繼資料,可以向追蹤服務入口網站註冊文件,網站進而提供數個追蹤選項。

使用這些 API 以文件追蹤中繼資料來新增/更新內容授權。

在操作方面,文件追蹤只需要內容名稱通知類型屬性。

  • IpcCreateLicenseMetadataHandle

  • IpcSetLicenseMetadataProperty

    我們希望您設定所有的中繼資料屬性。 以下就是這些屬性,依類型排列。

    如需詳細資訊,請參閱授權中繼資料屬性類型

    • IPC_MD_CONTENT_PATH

      使用這個屬性來識別追蹤的文件。 在不可能提供完整路徑的情況下,只要提供檔案名稱。

    • IPC_MD_CONTENT_NAME

      使用這個屬性來識別追蹤的文件名稱。

    • IPC_MD_NOTIFICATION_TYPE

      使用這個屬性來指定何時要傳送通知。 如需詳細資訊,請參閱<通知類型>。

    • IPC_MD_NOTIFICATION_PREFERENCE

      使用這個屬性來指定通知類型。 如需詳細資訊,請參閱<通知喜好設定>。

    • IPC_MD_DATE_MODIFIED

      建議您在每次使用者按一下 [儲存] 時設定此日期。

    • IPC_MD_DATE_CREATED

      使用這個屬性來設定檔案的原始日期

  • IpcSerializeLicenseWithMetadata

使用這些 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 格式一樣簡單︰

  • 使用內容識別碼

    • 使用 IpcGetLicenseProperty 取得內容識別碼;若授權已序列化則使用 IpcGetSerializedLicenseProperty,並使用授權屬性 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_Namehttps://track.azurerms.com/#/?q={ContentName}

    範例 - https://track.azurerms.com/#/?q=Secret !.txt

用戶端只需以適當的 URL 開啟瀏覽器。 RMS 文件追蹤入口網站會處理驗證及任何必要的重新導向。