ICertPolicy2 インターフェイス (certpol.h)

ICertPolicy2 インターフェイスは、Certificate Services サーバー エンジンとポリシー モジュール間の通信を提供する 2 つのインターフェイスのうちの 1 つです。

メモ ポリシー モジュールは、 ICertServerPolicy インターフェイスを使用して Certificate Services サーバー エンジンと通信できます。
 
Certificate Services サーバー エンジンは ICertPolicy2 メソッドを呼び出して、次のタスクを実行します。
  • ポリシー モジュールを初期化します。
  • 新しい要求がシステムに入力されたことをポリシー モジュールに通知します。 その後、ポリシー モジュールは ICertServerPolicy インターフェイスのメソッドを使用して、要求が適切であり、発行する必要があり、無効であり、拒否する必要があることを示すことができます。また、後で考慮するために保持する必要があります。
  • ポリシー モジュールとその機能の説明を取得します。
  • Certificate Services サーバーが終了していることをポリシー モジュールに通知します。

Certificate Services インターフェイスは、アパートメント スレッディング モデルとフリー スレッド モデルの両方をサポートします。 スループットを向上させるために、無料スレッド処理をお勧めします。

継承

ICertPolicy2 インターフェイスは、ICertPolicyIDispatch から継承されます。 ICertPolicy2 には、次の種類のメンバーもあります。

メソッド

ICertPolicy2 インターフェイスには、これらのメソッドがあります。

 
ICertPolicy2::GetManageModule

GetManageModule を呼び出し、ICertManageModule へのポインターのアドレスを渡すことによって、ICertPolicy2 インターフェイスに関連付けられている ICertManageModule インターフェイスを取得します。

解説

ICertPolicy の実装者は、ICertManageModule も実装する必要があります。 さらに、 ICertPolicy を実装するクラスの ProgID は、名前付け規則に準拠している必要があります。 具体的には、ProgID は次の形式である必要があります。

"MyApp。ポリシー"

ここで 、MyApp はアプリケーションを識別する指定子です。 たとえば、C++ では、 ICertPolicy を実装するクラス (CMyCertPolicyModule) の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 スナップイン、Certificate Services アプリケーション、または Certutil ツールでエラーが発生する可能性があります。 Visual Basic Scripting Edition 開発環境では、DLL が正常にビルドされると自動的に登録されることに注意してください。 その結果、1 つの Visual Basic Scripting Edition ポリシー モジュールが既に登録されていて、別の Visual Basic Scripting Edition ポリシー モジュールが作成されている場合に、このような状況が発生する可能性があります。 この状況を回避するには、コマンド ライン命令 regsvr32 /u FileName.dllを使用して、Visual Basic Scripting Edition ポリシー モジュールの 1 つを登録解除する必要があります。 ここで、FileName.dll はアクティブにする予定のない Visual Basic Scripting Edition ポリシー モジュールの名前です。

Visual Basic Scripting Edition の ICertPolicy の実装者は、次の形式でプロジェクトに名前を付ける必要があります。

"MyApp"

ここで 、MyApp はアプリケーションを識別する指定子です。さらに、 ICertPolicy を実装するクラスには "Policy" という名前を付ける必要があります。

要件

   
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー certpol.h (Certsrv.h を含む)