ICertPolicy 介面 (certpol.h)
ICertPolicy 介面提供憑證服務伺服器引擎與原則模組之間的通訊。
- 初始化原則模組。
- 通知原則模組,新要求已進入系統。 原則模組接著可以使用 ICertServerPolicy 介面的 方法來指出要求良好且應該發出、不正確且應遭到拒絕,或應保留以供稍後考慮。
- 擷取原則模組及其功能的描述。
- 通知原則模組憑證服務伺服器正在終止。
原則模組應該同時實作 ICertPolicy 和 ICertManageModule。
ICertPolicy 定義於 Certpol.h 中。 不過,當您建立程式時,請使用 Certsrv.h 作為包含檔案。
憑證服務介面同時支援Apartment線程和自由線程模型。 為了獲得更佳的輸送量,建議使用免費線程處理。
繼承
ICertPolicy 介面繼承自 IDispatch 介面。 ICertPolicy 也有下列類型的成員:
方法
ICertPolicy 介面具有這些方法。
ICertPolicy::GetDescription 傳回原則模組及其函式的人類可讀取描述。 |
ICertPolicy::Initialize 由伺服器引擎呼叫,以允許原則模組執行初始化工作。 |
ICertPolicy::ShutDown 伺服器引擎在終止伺服器之前呼叫。 |
ICertPolicy::VerifyRequest 通知原則模組新要求已進入系統。 |
備註
只有獨立 證書頒發機構單位 應該使用自定義原則或結束模組;執行企業證書頒發機構單位時,強烈建議使用 Microsoft 提供的原則和結束模組。
ICertPolicy 的實作者也應該實作 ICertManageModule。 此外,實作 ICertPolicy 之類別的 ProgID 必須符合命名慣例。 具體來說,ProgID 的格式必須是:
“MyApp.原則」
其中 MyApp 是識別應用程式的規範。 例如,在 C++ 中,下列程式代碼可用於實作 ICertPolicy 的 CMyCertPolicyMod) ule 類別 (DECLARE_REGISTRY 宏。
DECLARE_REGISTRY(
CMyCertPolicyModule,
L"MyCode.Policy.1",
L"MyCode.Policy",
IDS_CERTPOLICYMODULE_DESC,
THREADFLAGS_BOTH);
在上述範例中,IDS_CERTPOLICYMODULE_DESC值是描述 類別之字串的資源檔 (.rc) 中應用程式特定的識別碼。
在 Certmod.h 中定義的字串常數可用來簡化遵循命名慣例。
常數 | 值 |
---|---|
wszCERTPOLICYMODULE_POSTFIX | TEXT (”。原則“) |
一次無法在憑證服務伺服器上註冊一個以上的Visual Basic Scripting Edition原則模組。 如果在憑證服務伺服器上註冊多個這類原則模組,證書頒發機構單位 MMC 嵌入式管理單元、憑證服務應用程式或 certutil 命令行程式可能會產生錯誤。 請注意,Visual Basic Scripting Edition 開發環境會在建置成功時自動註冊 DLL。 因此,當您已註冊一個 Visual Basic Scripting Edition 原則模組,並建立另一個 Visual Basic Scripting Edition 原則模組時,可能會遇到這種情況。 若要避免這種情況,您必須使用命令行指令 regsvr32 /u FileName.dll來取消註冊其中一個 Visual Basic Scripting Edition 原則模組,其中 FileName.dll 是您不想使用中的 Visual Basic Scripting Edition 原則模組名稱。
Visual Basic Scripting Edition 中 ICertPolicy 的實作者必須以下列格式命名其專案:
“MyApp”
其中 MyApp 是識別應用程式的規範;此外,實作 ICertPolicy 的類別必須命名為 “Policy”。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 都不支援 |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | certpol.h (包含 Certsrv.h) |