Interfaz ICertPolicy2 (certpol.h)

La interfaz ICertPolicy2 es una de las dos interfaces que proporcionan comunicaciones entre el motor de servidor de Servicios de certificados y el módulo de directivas.

Nota El módulo de directivas puede comunicarse con el motor de servidor de Servicios de certificados mediante la interfaz ICertServerPolicy .
 
El motor de servidor de Servicios de certificados llama a los métodos ICertPolicy2 para realizar las siguientes tareas:
  • Inicialice el módulo de directivas.
  • Notifique al módulo de directiva que una nueva solicitud ha entrado en el sistema. Después, el módulo de directivas puede usar los métodos de la interfaz ICertServerPolicy para indicar que la solicitud es buena y debe emitirse, es incorrecta y debe denegarse o debe tenerse en cuenta posteriormente.
  • Recupere una descripción del módulo de directivas y su funcionalidad.
  • Notifique al módulo de directiva que se está finalizando el servidor de Servicios de certificados.

Las interfaces de Servicios de certificados admiten modelos de subprocesos de apartamento y de subprocesos libres. Para mejorar el rendimiento, se recomienda el subproceso libre.

Herencia

La interfaz ICertPolicy2 hereda de ICertPolicy e IDispatch. ICertPolicy2 también tiene estos tipos de miembros:

Métodos

La interfaz ICertPolicy2 tiene estos métodos.

 
ICertPolicy2::GetManageModule

Recupera la interfaz ICertManageModule asociada a la interfaz ICertPolicy2 llamando a GetManageModule y pasando la dirección de un puntero a un ICertManageModule.

Comentarios

Los implementadores de ICertPolicy también deben implementar ICertManageModule. Además, el ProgID de una clase que implementa ICertPolicy debe cumplir una convención de nomenclatura. En concreto, el ProgID debe tener el formato :

"MyApp. Directiva"

Donde MyApp es un especificador que identifica la aplicación. Por ejemplo, en C++, se podría usar lo siguiente en la macro DECLARE_REGISTRY de una clase (CMyCertPolicyModule) que implementa ICertPolicy.

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

En el ejemplo anterior, el valor de IDS_CERTPOLICYMODULE_DESC es un identificador específico de la aplicación en el archivo de recursos (.rc) de una cadena que describe la clase .

Las constantes de cadena definidas en Certmod.h se pueden usar para simplificar el seguimiento de la convención de nomenclatura.

Constante Valor
wszCERTPOLICYMODULE_POSTFIX TEXT(". Directiva")
 

No se puede registrar más de un módulo de directivas de Visual Basic Scripting Edition en el servidor de Servicios de certificados a la vez. Si hay más de un módulo de directiva registrado en el servidor de Servicios de certificados, el complemento MMC de entidad de certificación, la aplicación Servicios de certificados o la herramienta Certutil pueden producir errores. Tenga en cuenta que el entorno de desarrollo de Visual Basic Scripting Edition registra automáticamente un archivo DLL cuando se compila correctamente. Como resultado, puede encontrarse con esta situación cuando ya está registrado un módulo de directivas de Visual Basic Scripting Edition y se crea otro módulo de directivas de Visual Basic Scripting Edition. Para evitar esta situación, debe anular el registro de uno de los módulos de directivas de Visual Basic Scripting Edition mediante la instrucción de línea de comandos regsvr32 /u FileName.dll, donde FileName.dll es el nombre del módulo de directivas de Visual Basic Scripting Edition que no pretende activar.

Los implementadores de ICertPolicy en Visual Basic Scripting Edition deben asignar un nombre al proyecto con el formato siguiente:

"MyApp"

Donde MyApp es un especificador que identifica la aplicación; además, la clase que implementa ICertPolicy debe denominarse "Policy".

Requisitos

   
Cliente mínimo compatible No se admite ninguno
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certpol.h (incluya Certsrv.h)