Partager via


Interface ICertPolicy2 (certpol.h)

L’interface ICertPolicy2 est l’une des deux interfaces qui fournissent des communications entre le moteur serveur des services de certificats et le module de stratégie.

Note Le module de stratégie peut communiquer avec le moteur serveur des services de certificats à l’aide de l’interface ICertServerPolicy .
 
Le moteur de serveur des services de certificats appelle les méthodes ICertPolicy2 pour effectuer les tâches suivantes :
  • Initialisez le module de stratégie.
  • Informez le module de stratégie qu’une nouvelle demande est entrée dans le système. Le module de stratégie peut ensuite utiliser les méthodes de l’interface ICertServerPolicy pour indiquer que la demande est correcte et doit être émise, incorrecte et doit être refusée, ou doit être retenue pour un examen ultérieur.
  • Récupérez une description du module de stratégie et de ses fonctionnalités.
  • Informez le module de stratégie que le serveur des services de certificats est en cours d’arrêt.

Les interfaces des services de certificats prennent en charge à la fois les modèles de threads d’appartement et de thread libre. Pour un meilleur débit, le thread gratuit est recommandé.

Héritage

L’interface ICertPolicy2 hérite d’ICertPolicy et IDispatch. ICertPolicy2 a également les types de membres suivants :

Méthodes

L’interface ICertPolicy2 a ces méthodes.

 
ICertPolicy2::GetManageModule

Récupère l’interface ICertManageModule associée à l’interface ICertPolicy2 en appelant GetManageModule et en passant l’adresse d’un pointeur vers un ICertManageModule.

Remarques

Les implémenteurs d’ICertPolicy doivent également implémenter ICertManageModule. En outre, le ProgID d’une classe implémentant ICertPolicy doit être conforme à une convention d’affectation de noms. Plus précisément, le ProgID doit être de la forme suivante :

« MyApp. Stratégie »

MyApp est un spécificateur qui identifie l’application. Par exemple, en C++, les éléments suivants peuvent être utilisés dans la macro DECLARE_REGISTRY d’une classe (CMyCertPolicyModule) qui implémente ICertPolicy.

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

Dans l’exemple précédent, la valeur IDS_CERTPOLICYMODULE_DESC est un identificateur spécifique à l’application dans le fichier de ressources (.rc) pour une chaîne qui décrit la classe .

Les constantes de chaîne définies dans Certmod.h peuvent être utilisées pour simplifier le respect de la convention d’affectation de noms.

Constant Valeur
wszCERTPOLICYMODULE_POSTFIX TEXT(« . Stratégie « )
 

Il ne peut pas y avoir plus d’un module de stratégie Visual Basic Scripting Edition inscrit sur le serveur Des services de certificats à la fois. Si plusieurs modules de stratégie de ce type sont inscrits sur le serveur des services de certificats, le composant logiciel enfichable MMC de l’autorité de certification, l’application Services de certificats ou l’outil Certutil peut générer des erreurs. Notez que l’environnement de développement Visual Basic Scripting Edition inscrit automatiquement une DLL lorsqu’elle est correctement générée. Par conséquent, vous pouvez rencontrer cette situation lorsqu’un module de stratégie Visual Basic Scripting Edition est déjà inscrit et qu’un autre module de stratégie Visual Basic Scripting Edition est créé. Pour éviter cette situation, vous devez annuler l’inscription de l’un des modules de stratégie Visual Basic Scripting Edition à l’aide de l’instruction de ligne de commande regsvr32 /u FileName.dll, où FileName.dll est le nom du module de stratégie Visual Basic Scripting Edition que vous n’avez pas l’intention de rendre actif.

Les implémenteurs d’ICertPolicy dans Visual Basic Scripting Edition doivent nommer leur projet au format suivant :

« MyApp »

MyApp est un spécificateur qui identifie l’application ; en outre, la classe implémentant ICertPolicy doit être nommée « Policy ».

Configuration requise

   
Client minimal pris en charge Aucun pris en charge
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête certpol.h (include Certsrv.h)