Método ICertServerPolicy::GetCertificateExtension (certif.h)

O método GetCertificateExtension recupera uma extensão de certificado específica.

Sintaxe

HRESULT GetCertificateExtension(
  [in]  const BSTR strExtensionName,
  [in]  LONG       Type,
  [out] VARIANT    *pvarValue
);

Parâmetros

[in] strExtensionName

Uma cadeia de caracteres que contém o nome da extensão.

[in] Type

Especifica o tipo da extensão. O tipo pode ser um dos valores a seguir.

Valor Significado
PROPTYPE_LONG
Dados longos assinados
PROPTYPE_DATE
Data/hora
PROPTYPE_BINARY
O valor da extensão é recuperado como está e é codificado como ASN.1, se necessário.
PROPTYPE_STRING
O valor da extensão é codificado em ASN.1 como uma cadeia de caracteres IA5.

[out] pvarValue

Um ponteiro para um VARIANT que recebe o valor de extensão solicitado.

Retornar valor

C++

Se o método for bem-sucedido, o método retornará S_OK e o parâmetro pvarValue conterá o valor da extensão.

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 é o valor de extensão solicitado.

Comentários

O método SetContext deve ser chamado antes de chamar esse método. A chamada para SetContext especifica qual solicitação é usada como o contexto atual.

As extensões de certificado são distintas das propriedades do certificado. As propriedades são dados genéricos anexados à solicitação. Algumas dessas propriedades são codificadas no certificado (por exemplo: BeginDate), enquanto outras são usadas apenas para marcar solicitações na fila e no log. As extensões que não estão desabilitadas são codificadas no certificado. As extensões são sempre marcadas com um identificador de objeto e sempre têm um sinalizador crítico/não crítico.

Exemplos

VARIANT    varExt;
HRESULT    hr;

VariantInit(&varExt);
// Get the Extension value.
// bstrExtName is BSTR assigned by EnumerateExtensions.
// pCertServerPolicy has been used to call SetContext previously.
hr = pCertServerPolicy->GetCertificateExtension(bstrExtName,
                                                PROPTYPE_BINARY,
                                                &varExt);

if (FAILED(hr))
{
    printf("Failed GetCertificateExtension [%x]\n", hr);
    goto error;
}
// Successful call; use the value in varExt as needed.
// ...

// When done, clear the Variant
VariantClear(&varExt);

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

Confira também

ICertServerPolicy

ICertServerPolicy::GetCertificateExtensionFlags

ICertServerPolicy::SetContext