了解使用限制
重要
2020 年 3 月之前發行的 Microsoft Rights Management Service SDK 版本已被取代;使用舊版的應用程式必須更新為使用 2020 年 3 月版本。 如需完整詳細資料,請參閱 淘汰通知。
Microsoft Rights Management Service SDK 沒有進一步的增強功能。 我們強烈建議採用Microsoft 資訊保護 SDK來分類、標記和保護服務。
RMS 啟用的所有應用程式必須強制使用限制。 使用限制是使用者嘗試 (列印檔案) 動作時所產生的條件,但該檔的 RMS 原則不會授與他們執行該動作的許可權或許可權 (,例如 PRINT 許可權) 。
使用者對文件的權限可使用 IpcAccessCheck 函式查詢。
搭配使用限制進行設計
熟悉標準 RMS 權限
應用程式可能會強制使用的 RMS 權限完整清單,請參閱使用限制參考。
請注意,可以建立應用程式為您的情況定義、且超出標準 RMS 權限的特定權限。
識別使用限制強制點
使用限制強制點是應用程式的控制流程中您必須強制使用限制的位置。 使用限制參考主題提供數個常見的強制點範例。
評估您自己的應用程式,判斷哪些使用限制強制點較適用。
您的應用程式可能不需要使用限制參考中所述的所有強制點。 例如,如果您的應用程式不允許使用者列印內容,則不需要檢查 IPC_GENERIC_PRINT 許可權。
更新您的程式碼,在每個強制點執行存取檢查
如需有關如何強制特定權限的指引,請參閱使用限制參考。
使用限制參考
使用限制是由下列常數所定義。
AD RMS 權限欄中所列的每個使用者權限,均具有說明、強制端點和建議的強制執行方法。
AD RMS 權限/描述 | 如何強制執行 |
---|---|
IPC_GENERIC_ALL 授與使用者所有權限。 一般強制端點:無 |
此權限是由系統使用,通常不應直接勾選。 IpcAccessCheck 使用此權限來決定是否要為使用者授與其他權限,如此範例中所示。 /* fAccessGranted is set to TRUE if either the IPC_GENERIC_WRITE or the IPC_GENERIC_ALL right is granted */ IpcAccessCheck(hKey, IPC_GENERIC_WRITE, &fAccessGranted); |
IPC_GENERIC_READ 讀取文件內容的權限。 一般強制端點:文件載入 |
未載入或出現文件內容 |
IPC_GENERIC_WRITE 編輯文件內容的權限 一般強制端點:文件修改 |
進行可用來修改文件不可編輯內容的任何 UI 控制。 停用觸發文件變更的任何功能表項目。 編輯>剪下、編輯>貼上和插入是典型的範例。 停用觸發文件變更的任何捷徑功能表項目。 |
沒有 AD RMS 權限 沒有描述 一般強制端點:儲存 |
停用 [檔案>儲存]功能表。 注意:此權限不會控制 [檔案]>[另存新檔],因為該權限不代表變更原始文件。 停用可以用來觸發儲存的任何鍵盤快速鍵 (例如,Ctrl+S)。 提示:最佳做法是將您的核心 [檔案]>[儲存] 程式碼更新為在使用者不需要此權限時失敗。 這可以做為若您遺漏可以用來觸發儲存的任何 UX 機制時的安全網。 |
IPC_GENERIC_EXTRACT 從受保護的格式擷取內容,並將它放在不受保護格式的權限。 一般強制端點︰複製到剪貼簿 |
停用 [編輯>複製]功能表。 停用[編輯>剪下] 功能表。 停用任何捷徑功能表的 [複製] 和 [剪下]。 停用可以用來觸發複製的任何鍵盤快速鍵 (例如,Ctrl+C 或 Ctrl+X)。 更新 WM_CUT 的視窗訊息處理常式,以在使用者沒有此權限時拒絕複製資料。 如果視窗使用預設的 Windows 提供的訊息處理常式,請將此視窗設為子類別,並為 WM_COPY 和 WM_CUT 提供您自己的處理常式。 |
沒有 AD RMS 權限 沒有描述 一般強制端點:另存新檔 |
在您的 [另存新檔] 對話方塊中,停用可能會導致儲存文件而未受 RMS 保護的任何檔案格式。 |
沒有 AD RMS 權限 沒有描述 一般強制端點:Alt+PrtScn |
呼叫任何視窗上可以轉譯文件內容的 IpcProtectWindow。 |
IPC_GENERIC_EXPORT 從受保護的格式擷取內容,並將它放在不同的 AD RMS 受保護格式的權限。 一般強制端點:另存新檔 |
在您的 [另存新檔] 對話方塊中,停用儲存為任何其他檔案格式的能力。 提示:最佳做法是將您的核心 [檔案]>[另存新檔] 程式碼更新為在使用者嘗試將檔案儲存為不同的格式並且不具備此權限時失敗。 這可以做為若您遺漏可以用來觸發另存新檔的任何 UX 機制時的安全網。 |
IPC_GENERIC_PRINT 列印文件內容的權限。 一般強制端點:列印 |
停用 [檔案>列印]功能表。 停用可以用來觸發列印的任何鍵盤快速鍵 (例如,Ctrl+P)。 停用可以用來觸發列印的捷徑功能表項目。 提示:最佳做法是將您的核心 [檔案]>[列印] 程式碼更新為在使用者不需要此權限時失敗。 這可以做為若您遺漏可以用來觸發列印的任何 UX 機制時的安全網。 |
IPC_GENERIC_COMMENT 有些應用程式支援在文件中加入註解和註釋的能力,而無須更新核心文件內容。 此權限授與使用者存取這項功能。 一般強制端點: 檢閱 > 插入批註 檢閱 > 刪除批註 |
停用可用來修改文件註解或註釋的功能表項目。 檢討>插入批註和檢閱>刪除批註是範例。 停用任何可能會觸發修改文件註解的鍵盤快速鍵。 注意:預設實作需要 IPC_GENERIC_COMMENT 和 IPC_GENERIC_WRITE 才能將新註解保存至檔案。 應用程式可以選擇對授與了 IPC_GENERIC_COMMENT 權限而未授與 IPC_GENERIC_WRITE 權限的情況加入支援。 在此情況下,它允許儲存,只要文件修改僅限於註解即可。 |
IPC_VIEW_RIGHTS 沒有描述 一般強制端點:N/A |
系統強制使用。 除非授與此權限,否則系統將不允許開發人員從授權查詢使用者權限清單。 |
IPC_EDIT_RIGHTS 有些應用程式允許使用者修改使用者集合和 AD RMS 保護的內容的權限。 此權限授與使用者存取這項功能。 一般強制端點︰應用程式權限編輯 UI 控制項 |
停用使用者存取可用於編輯文件的 RMS 原則的任何 UI。 |