ICertPolicy 介面 (certpol.h)

ICertPolicy 介面提供憑證服務伺服器引擎與原則模組之間的通訊。

注意 原則模組可以使用 ICertServerPolicy 介面與憑證服務伺服器引擎通訊。
 
憑證服務伺服器引擎會呼叫 ICertPolicy 方法來執行下列工作:
  • 初始化原則模組。
  • 通知原則模組,新要求已進入系統。 原則模組接著可以使用 ICertServerPolicy 介面的 方法來指出要求良好且應該發出、不正確且應遭到拒絕,或應保留以供稍後考慮。
  • 擷取原則模組及其功能的描述。
  • 通知原則模組憑證服務伺服器正在終止。

原則模組應該同時實作 ICertPolicyICertManageModule

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)