Condividi tramite


Interfaccia ICertPolicy (certpol.h)

L'interfaccia ICertPolicy fornisce comunicazioni tra il motore del server Servizi certificati e il modulo dei criteri.

Nota Il modulo dei criteri può comunicare con il motore del server Servizi certificati usando l'interfaccia ICertServerPolicy .
 
Il motore del server Servizi certificati chiama i metodi ICertPolicy per eseguire le attività seguenti:
  • Inizializzare il modulo dei criteri.
  • Notificare al modulo criteri che una nuova richiesta è stata immessa nel sistema. Il modulo criteri può quindi usare i metodi dell'interfaccia ICertServerPolicy per indicare che la richiesta è valida e deve essere rilasciata, è errata e deve essere negata o deve essere mantenuta per una considerazione successiva.
  • Recuperare una descrizione del modulo criteri e della relativa funzionalità.
  • Notificare al modulo criteri che il server Servizi certificati viene terminato.

I moduli di criteri devono implementare sia ICertPolicy che ICertManageModule.

ICertPolicy è definito in Certpol.h. Quando si crea il programma, tuttavia, usare Certsrv.h come file di inclusione.

Le interfacce di Servizi certificati supportano sia modelli di threading a apartment che free-threading. Per migliorare la velocità effettiva, è consigliabile eseguire il threading gratuito.

Ereditarietà

L'interfaccia ICertPolicy eredita dall'interfaccia IDispatch . ICertPolicy include anche questi tipi di membri:

Metodi

L'interfaccia ICertPolicy include questi metodi.

 
ICertPolicy::GetDescription

Restituisce una descrizione leggibile del modulo dei criteri e della relativa funzione.
ICertPolicy::Initialize

Chiamato dal motore del server per consentire al modulo criteri di eseguire attività di inizializzazione.
ICertPolicy::ShutDown

Chiamato dal motore del server prima che il server venga terminato.
ICertPolicy::VerifyRequest

Notifica al modulo criteri che una nuova richiesta è stata immessa nel sistema.

Commenti

Solo un'autorità di certificazione autonoma deve usare i moduli personalizzati o i criteri di uscita; quando si esegue un'autorità di certificazione aziendale, è consigliabile usare i criteri forniti da Microsoft e i moduli di uscita.

Gli implementatori di ICertPolicy devono anche implementare ICertManageModule. Inoltre, progID per una classe che implementa ICertPolicy deve essere conforme a una convenzione di denominazione. In particolare, progID deve essere del modulo:

"MyApp. Criteri"

Dove MyApp è un identificatore che identifica l'applicazione. Ad esempio, in C++, il codice seguente può essere usato nella macro DECLARE_REGISTRY di una classe (CMyCertPolicyModule) che implementa ICertPolicy.

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

Per l'esempio precedente, il valore IDS_CERTPOLICYMODULE_DESC è un identificatore specifico dell'applicazione nel file di risorse (.rc) per una stringa che descrive la classe.

Le costanti stringa definite in Certmod.h possono essere usate per semplificare la convenzione di denominazione.

Costante Valore
wszCERTPOLICYMODULE_POSTFIX TEXT(". Criteri")
 

Non è possibile registrare più di un modulo di criteri di Visual Basic Scripting Edition nel server Servizi certificati alla volta. Se più di un modulo di questo criterio viene registrato nel server Servizi certificati, lo snap-in MMC dell'autorità di certificazione, l'applicazione Servizi certificati o il programma della riga di comando certutil possono generare errori. Si noti che l'ambiente di sviluppo di Visual Basic Scripting Edition registra automaticamente una DLL quando viene compilata correttamente. Di conseguenza, è possibile che si verifichi questa situazione quando viene già registrato un modulo dei criteri di Visual Basic Scripting Edition e viene creato un altro modulo dei criteri di Visual Basic Scripting Edition. Per evitare questa situazione, è necessario annullare la registrazione di uno dei moduli dei criteri di Visual Basic Scripting Edition usando l'istruzione della riga di comando regsvr32 /u FileName.dll, dove FileName.dll è il nome del modulo criteri di Visual Basic Scripting Edition che non si intende rendere attivo.

Gli implementatori di ICertPolicy in Visual Basic Scripting Edition devono assegnare un nome al progetto nel formato:

"MyApp"

Dove MyApp è un identificatore che identifica l'applicazione; inoltre, la classe che implementa ICertPolicy deve essere denominata "Policy".

Requisiti

Requisito Valore
Client minimo supportato Nessuno supportato
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione certpol.h (includere Certsrv.h)