ICertPolicy-Schnittstelle (certpol.h)

Die ICertPolicy-Schnittstelle stellt die Kommunikation zwischen der Zertifikatdienste-Server-Engine und dem Richtlinienmodul bereit.

Hinweis Das Richtlinienmodul kann mithilfe der ICertServerPolicy-Schnittstelle mit der Zertifikatdienste-Server-Engine kommunizieren.
 
Die Zertifikatdienste-Server-Engine ruft die ICertPolicy-Methoden auf, um die folgenden Aufgaben auszuführen:
  • Initialisieren Sie das Richtlinienmodul.
  • Benachrichtigen Sie das Richtlinienmodul, dass eine neue Anforderung in das System eingetreten ist. Das Richtlinienmodul kann dann die Methoden der ICertServerPolicy-Schnittstelle verwenden, um anzugeben, dass die Anforderung gut ist und ausgegeben werden soll, ungültig ist und verweigert werden sollte oder zur späteren Prüfung gehalten werden sollte.
  • Rufen Sie eine Beschreibung des Richtlinienmoduls und seiner Funktionalität ab.
  • Benachrichtigen Sie das Richtlinienmodul, dass der Zertifikatdiensteserver beendet wird.

Richtlinienmodule sollten sowohl ICertPolicy als auch ICertManageModule implementieren.

ICertPolicy ist in Certpol.h definiert. Wenn Sie Ihr Programm erstellen, verwenden Sie jedoch Certsrv.h als Includedatei.

Zertifikatdienstschnittstellen unterstützen sowohl Apartmentthreading- als auch Free-Threading-Modelle. Für einen besseren Durchsatz wird freies Threading empfohlen.

Vererbung

Die ICertPolicy-Schnittstelle erbt von der IDispatch-Schnittstelle . ICertPolicy verfügt auch über folgende Arten von Membern:

Methoden

Die ICertPolicy-Schnittstelle verfügt über diese Methoden.

 
ICertPolicy::GetDescription

Gibt eine lesbare Beschreibung des Richtlinienmoduls und seiner Funktion zurück.
ICertPolicy::Initialize

Wird von der Server-Engine aufgerufen, damit das Richtlinienmodul Initialisierungsaufgaben ausführen kann.
ICertPolicy::ShutDown

Wird von der Server-Engine aufgerufen, bevor der Server beendet wird.
ICertPolicy::VerifyRequest

Benachrichtigt das Richtlinienmodul, dass eine neue Anforderung in das System eingedrungen ist.

Hinweise

Nur eine eigenständige Zertifizierungsstelle sollte benutzerdefinierte Richtlinien- oder Exitmodule verwenden. Beim Ausführen einer Unternehmenszertifizierungsstelle wird dringend die Verwendung von von Microsoft bereitgestellten Richtlinien- und Exitmodulen empfohlen.

Implementierer von ICertPolicy sollten auch ICertManageModule implementieren. Darüber hinaus muss die ProgID für eine Klasse, die ICertPolicy implementiert, einer Benennungskonvention entsprechen. Insbesondere muss die ProgID folgende Form aufweisen:

"MyApp. Richtlinie"

Dabei ist MyApp ein Spezifizierer, der die Anwendung identifiziert. In C++ kann beispielsweise der folgende Code im DECLARE_REGISTRY Makro einer Klasse (CMyCertPolicyModule) verwendet werden, die ICertPolicy implementiert.

DECLARE_REGISTRY(
    CMyCertPolicyModule,
    L"MyCode.Policy.1",
    L"MyCode.Policy",
    IDS_CERTPOLICYMODULE_DESC,
    THREADFLAGS_BOTH);

Im vorherigen Beispiel ist der IDS_CERTPOLICYMODULE_DESC Wert ein anwendungsspezifischer Bezeichner in der Ressourcendatei (.rc) für eine Zeichenfolge, die die -Klasse beschreibt.

Zeichenfolgenkonstanten, die in Certmod.h definiert sind, können verwendet werden, um die Verwendung der Benennungskonvention zu vereinfachen.

Konstante Wert
wszCERTPOLICYMODULE_POSTFIX TEXT(". Richtlinie")
 

Es darf nicht mehr als ein Visual Basic Scripting Edition-Richtlinienmodul gleichzeitig auf dem Certificate Services-Server registriert werden. Wenn mehr als ein solches Richtlinienmodul auf dem Zertifikatdiensteserver registriert ist, kann das MMC-Snap-In der Zertifizierungsstelle, die Zertifikatdiensteanwendung oder das Befehlszeilenprogramm certutil Zu Fehlern führen. Beachten Sie, dass die Visual Basic Scripting Edition-Entwicklungsumgebung eine DLL automatisch registriert, wenn sie erfolgreich erstellt wurde. Daher kann diese Situation auftreten, wenn ein Visual Basic Scripting Edition-Richtlinienmodul bereits registriert ist und ein anderes Visual Basic Scripting Edition-Richtlinienmodul erstellt wird. Um diese Situation zu vermeiden, müssen Sie die Registrierung eines der Visual Basic Scripting Edition-Richtlinienmodule mithilfe der Befehlszeilenanweisung regsvr32 /u FileName.dllaufheben, wobei FileName.dll der Name des Visual Basic Scripting Edition-Richtlinienmoduls ist, das Sie nicht aktivieren möchten.

Implementierer von ICertPolicy in Visual Basic Scripting Edition müssen ihr Projekt in folgendem Format benennen:

"MyApp"

Dabei ist MyApp ein Spezifizierer, der die Anwendung identifiziert; Darüber hinaus muss die Klasse, die ICertPolicy implementiert, den Namen "Policy" haben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Nicht unterstützt
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile certpol.h (include Certsrv.h)