Compartir a través de


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

El método IsValidCertificate comprueba el certificado con la clave de la entidad de certificación (CA) y comprueba que el certificado no se ha revocado. Este método se definió por primera vez en la interfaz ICertAdmin .

Sintaxis

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

Parámetros

[in] strConfig

Representa una cadena de configuración válida para la ENTIDAD de certificación con el formato COMPUTERNAME\CANAME, donde COMPUTERNAME es el nombre de red del servidor de Servicios de certificados y CANAME es el nombre común de la entidad de certificación, tal como se especifica durante la instalación de Servicios de certificados. Para obtener información sobre el nombre de la cadena de configuración, vea ICertConfig.

ImportanteIsValidCertificate no borra la memoria caché interna cuando se cambia la cadena de configuración. Al cambiar la cadena de configuración de la entidad de certificación, debe crear una instancia de un nuevo objeto ICertAdmin y llamar a este método de nuevo con la nueva cadena de configuración.
 

[in] strSerialNumber

Especifica un número de serie que identifica el certificado que se va a revisar. La cadena debe especificar el número de serie como un número par de dígitos hexadecimales. Si es necesario, se puede prefijar un cero al número para generar un número par de dígitos. No se puede usar más de un cero inicial.

[out, retval] pDisposition

Puntero a un long que recibe el valor de disposición.

Valor devuelto

C++

Si el método se ejecuta correctamente y el parámetro pDisposition se establece en uno de los valores siguientes, el método devuelve S_OK.

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 especifica la disposición del certificado. Este valor es uno de los siguientes valores. (Estos valores se definen en Certadm.h).
Código devuelto Descripción
CA_DISP_INCOMPLETE
No se completó la llamada.
CA_DISP_ERROR
Se produjo un error en la llamada.
CA_DISP_REVOKED
Se ha revocado el certificado.
CA_DISP_VALID
El certificado sigue siendo válido.
CA_DISP_INVALID
El certificado nunca se emitió.
CA_DISP_UNDER_SUBMISSION
El certificado está pendiente.

Comentarios

Este método determina solo si se ha emitido un certificado y no se ha revocado actualmente; no comprueba que la hora y la fecha actuales estén dentro del período durante el cual el certificado es válido (las propiedades NotBefore y NotAfter certificate). Una aplicación que usa este método también es responsable de comprobar la expiración del certificado.

Las tareas de administración usan DCOM. El código que llama a este método de interfaz tal como se define en una versión anterior de Certadm.h se ejecutará en servidores basados en Windows siempre que el cliente y el servidor ejecuten el mismo sistema operativo Windows.

Ejemplos

    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 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 certadm.h (incluya Certsrv.h)
Library Certidl.lib
Archivo DLL Certadm.dll

Consulte también

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig