Método ICertAdmin::IsValidCertificate (certadm.h)

O método IsValidCertificate verifica o certificado em relação à chave da AC (autoridade de certificação ) e verifica se o certificado não foi revogado. Esse método foi definido pela primeira vez na interface ICertAdmin .

Sintaxe

HRESULT IsValidCertificate(
  [in]          const BSTR strConfig,
  [in]          const BSTR strSerialNumber,
  [out, retval] LONG       *pDisposition
);

Parâmetros

[in] strConfig

Representa uma cadeia de caracteres de configuração válida para a AC no formato COMPUTERNAME\CANAME, em que COMPUTERNAME é o nome de rede do servidor de Serviços de Certificados e CANAME é o nome comum da autoridade de certificação, conforme inserido durante a instalação dos Serviços de Certificados. Para obter informações sobre o nome da cadeia de caracteres de configuração, consulte ICertConfig.

ImportanteIsValidCertificate não limpa o cache interno quando a cadeia de caracteres de configuração é alterada. Ao alterar a cadeia de caracteres de configuração para a AC, você deve instanciar um novo objeto ICertAdmin e chamar esse método novamente com a nova cadeia de caracteres de configuração.
 

[in] strSerialNumber

Especifica um número de série que identifica o certificado a ser revisado. A cadeia de caracteres deve especificar o número de série como um número par de dígitos hexadecimais. Se necessário, um zero pode ser prefixado para o número para produzir um número par de dígitos. Não é possível usar mais de um zero à esquerda.

[out, retval] pDisposition

Um ponteiro para um LONG que recebe o valor de disposição.

Retornar valor

C++

Se o método for bem-sucedido e o parâmetro pDisposition for definido como um dos valores a seguir, o método retornará S_OK.

Se o método falhar, ele retornará um valor HRESULT que indica o erro. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

VB

O valor retornado especifica a disposição do certificado. Esse valor é um dos valores a seguir. (Esses valores são definidos em Certadm.h.)
Código de retorno Descrição
CA_DISP_INCOMPLETE
A chamada não foi concluída.
CA_DISP_ERROR
Falha na chamada.
CA_DISP_REVOKED
O certificado foi revogado.
CA_DISP_VALID
O certificado ainda é válido.
CA_DISP_INVALID
O certificado nunca foi emitido.
CA_DISP_UNDER_SUBMISSION
O certificado está pendente.

Comentários

Esse método determina apenas se um certificado foi emitido e não está revogado no momento; ele não marcar que a hora e a data atuais estejam dentro do período para o qual o certificado é válido (as propriedades do certificado NotBefore e NotAfter). Um aplicativo que usa esse método também é responsável por verificar a expiração do certificado.

As tarefas de administração usam o DCOM. O código que chama esse método de interface conforme definido em uma versão anterior do Certadm.h será executado em servidores baseados no Windows, desde que o cliente e o servidor estejam executando o mesmo sistema operacional Windows.

Exemplos

    BSTR       bstrCA = NULL;      // Machine\CAName
    BSTR       bstrSerial = NULL;  // Contains the certificate 
                             // serial number
    long       nDisp;              // Contains the certificate
                             // disposition
    HRESULT    hr;

    bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
    bstrSerial = SysAllocString(L"<SERIALNUMBERHERE>");

    if (NULL == bstrCA || NULL == bstrSerial)
    {
        printf("Memory allocation failed\n");
        goto error;
    }

    //  Determine whether the certificate is valid.
    //  pCertAdmin is a previously instantiated ICertAdmin 
    //  object pointer.
    hr = pCertAdmin->IsValidCertificate(bstrCA, bstrSerial, &nDisp);
    if (FAILED(hr))
    {
        printf("Failed IsValidCertificate [%x]\n", hr);
        goto error;
    }
    //  Use nDisp as needed.

    //  Done processing.

error:

    //  Free BSTR values.
    if (NULL != bstrCA)
        SysFreeString(bstrCA);

    if (NULL != bstrSerial)
        SysFreeString(bstrSerial);

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 certadm.h (inclua Certsrv.h)
Biblioteca Certidl.lib
DLL Certadm.dll

Confira também

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig