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

El método GetCertificateExtension recupera una extensión de certificado específica.

Sintaxis

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

Parámetros

[in] strExtensionName

Cadena que contiene el nombre de la extensión.

[in] Type

Especifica el tipo de la extensión. El tipo puede ser uno de los valores siguientes.

Valor Significado
PROPTYPE_LONG
Datos largos firmados
PROPTYPE_DATE
Fecha y hora
PROPTYPE_BINARY
El valor de extensión se recupera tal cual y está codificado ASN.1 si es necesario.
PROPTYPE_STRING
El valor de extensión es ASN.1 codificado como una cadena IA5.

[out] pvarValue

Puntero a un variant que recibe el valor de extensión solicitado.

Valor devuelto

C++

Si el método se ejecuta correctamente, el método devuelve S_OK y el parámetro pvarValue contiene el valor de extensión.

Si se produce un error en el método, devuelve un valor HRESULT que indica el error. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

VB

El valor devuelto es el valor de extensión solicitado.

Comentarios

Se debe llamar al método SetContext antes de llamar a este método. La llamada a SetContext especifica qué solicitud se usa como contexto actual.

Las extensiones de certificado son distintas de las propiedades del certificado. Las propiedades son datos genéricos que se adjuntan a la solicitud. Algunas de estas propiedades se codifican en el certificado (por ejemplo: BeginDate), mientras que otras solo se usan para marcar las solicitudes en la cola y el registro. Las extensiones que no están deshabilitadas se codifican en el certificado. Las extensiones siempre se marcan con un identificador de objeto y siempre tienen una marca crítica o no crítica.

Ejemplos

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 Value
Cliente mínimo compatible No se admite ninguno
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certif.h (incluya Certsrv.h)
Library Certidl.lib
Archivo DLL Certcli.dll

Consulte también

ICertServerPolicy

ICertServerPolicy::GetCertificateExtensionFlags

ICertServerPolicy::SetContext