Compartilhar via


Interface ICertPolicy (certpol.h)

A interface ICertPolicy fornece comunicações entre o mecanismo de servidor dos Serviços de Certificados e o módulo de política.

Nota O módulo de política pode se comunicar com o mecanismo de servidor dos Serviços de Certificados usando a interface ICertServerPolicy .
 
O mecanismo de servidor dos Serviços de Certificados chama os métodos ICertPolicy para executar as seguintes tarefas:
  • Inicialize o módulo de política.
  • Notifique o módulo de política de que uma nova solicitação entrou no sistema. O módulo de política pode usar os métodos da interface ICertServerPolicy para indicar que a solicitação é boa e deve ser emitida, é ruim e deve ser negada ou deve ser mantida para consideração posterior.
  • Recupere uma descrição do módulo de política e sua funcionalidade.
  • Notifique o módulo de política de que o servidor dos Serviços de Certificados está sendo encerrado.

Os módulos de política devem implementar ICertPolicy e ICertManageModule.

ICertPolicy é definido em Certpol.h. No entanto, ao criar seu programa, use Certsrv.h como o arquivo de inclusão.

As interfaces dos Serviços de Certificados dão suporte a modelos apartment-threading e free-threading. Para obter uma taxa de transferência melhor, o threading gratuito é recomendado.

Herança

A interface ICertPolicy herda da interface IDispatch . ICertPolicy também tem estes tipos de membros:

Métodos

A interface ICertPolicy tem esses métodos.

 
ICertPolicy::GetDescription

Retorna uma descrição legível do módulo de política e sua função.
ICertPolicy::Initialize

Chamado pelo mecanismo de servidor para permitir que o módulo de política execute tarefas de inicialização.
ICertPolicy::ShutDown

Chamado pelo mecanismo de servidor antes que o servidor seja encerrado.
ICertPolicy::VerifyRequest

Notifica o módulo de política de que uma nova solicitação entrou no sistema.

Comentários

Somente uma autoridade de certificação autônoma deve usar módulos personalizados de política ou de saída; ao executar uma autoridade de certificação corporativa, o uso de módulos de saída e política fornecidos pela Microsoft é altamente recomendável.

Os implementadores de ICertPolicy também devem implementar ICertManageModule. Além disso, o ProgID para uma classe que implementa ICertPolicy deve estar em conformidade com uma convenção de nomenclatura. Especificamente, o ProgID deve ser do formato:

"MyApp. Política"

Em que MyApp é um especificador que identifica o aplicativo. Por exemplo, em C++, o código a seguir pode ser usado na macro DECLARE_REGISTRY de uma classe (CMyCertPolicyModule) que implementa ICertPolicy.

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

Para o exemplo anterior, o valor IDS_CERTPOLICYMODULE_DESC é um identificador específico do aplicativo no arquivo de recurso (.rc) para uma cadeia de caracteres que descreve a classe .

As constantes de cadeia de caracteres definidas em Certmod.h podem ser usadas para simplificar o seguindo a convenção de nomenclatura.

Constante Valor
wszCERTPOLICYMODULE_POSTFIX TEXT(". Política")
 

Não mais do que um módulo de política do Visual Basic Scripting Edition pode ser registrado no servidor de Serviços de Certificados ao mesmo tempo. Se mais de um desses módulos de política estiver registrado no servidor de Serviços de Certificados, o snap-in da Autoridade de Certificação MMC, o aplicativo de Serviços de Certificados ou o programa de linha de comando certutil poderão produzir erros. Observe que o ambiente de desenvolvimento do Visual Basic Scripting Edition registra automaticamente uma DLL quando ela é criada com êxito. Como resultado, você pode encontrar essa situação quando um módulo de política do Visual Basic Scripting Edition já estiver registrado e outro módulo de política do Visual Basic Scripting Edition for criado. Para evitar essa situação, você deve cancelar o registro de um dos módulos de política do Visual Basic Scripting Edition usando a instrução de linha de comando regsvr32 /u FileName.dll, em que FileName.dll é o nome do módulo de política do Visual Basic Scripting Edition que você não pretende tornar ativo.

Os implementadores de ICertPolicy no Visual Basic Scripting Edition devem nomear seu projeto no formato:

"MyApp"

Em que MyApp é um especificador que identifica o aplicativo; além disso, a classe que implementa ICertPolicy deve ser chamada de "Política".

Requisitos

Requisito Valor
Cliente mínimo com suporte Nenhum compatível
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certpol.h (inclua Certsrv.h)