Partager via


ICertAdmin ::IsValidCertificate, méthode (certadm.h)

La méthode IsValidCertificate vérifie le certificat par rapport à la clé de l’autorité de certification et vérifie que le certificat n’a pas été révoqué. Cette méthode a d’abord été définie dans l’interface ICertAdmin .

Syntaxe

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

Paramètres

[in] strConfig

Représente une chaîne de configuration valide pour l’autorité de certification sous la forme COMPUTERNAME\CANAME, où COMPUTERNAME est le nom réseau du serveur des services de certificats et CANAME est le nom commun de l’autorité de certification, comme entré lors de l’installation des services de certificats. Pour plus d’informations sur le nom de la chaîne de configuration, consultez ICertConfig.

ImportantIsValidCertificate n’efface pas le cache interne lorsque la chaîne de configuration est modifiée. Lorsque vous modifiez la chaîne de configuration de l’autorité de certification, vous devez instancier un nouvel objet ICertAdmin et appeler à nouveau cette méthode avec la nouvelle chaîne de configuration.
 

[in] strSerialNumber

Spécifie un numéro de série qui identifie le certificat à examiner. La chaîne doit spécifier le numéro de série en tant que nombre pair de chiffres hexadécimaux. Si nécessaire, un zéro peut être préfixé au nombre pour produire un nombre pair de chiffres. Il n’est pas possible d’utiliser plus d’un zéro de début.

[out, retval] pDisposition

Pointeur vers un LONG qui reçoit la valeur de disposition.

Valeur retournée

C++

Si la méthode réussit et que le paramètre pDisposition est défini sur l’une des valeurs suivantes, la méthode retourne S_OK.

Si la méthode échoue, elle retourne une valeur HRESULT qui indique l’erreur. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

VB

La valeur de retour spécifie la disposition du certificat. Cette valeur est l’une des valeurs suivantes. (Ces valeurs sont définies dans Certadm.h.)
Code de retour Description
CA_DISP_INCOMPLETE
L’appel n’a pas été terminé.
CA_DISP_ERROR
L'appel a échoué.
CA_DISP_REVOKED
Le certificat a été révoqué.
CA_DISP_VALID
Le certificat est toujours valide.
CA_DISP_INVALID
Le certificat n’a jamais été émis.
CA_DISP_UNDER_SUBMISSION
Le certificat est en attente.

Remarques

Cette méthode détermine uniquement si un certificat a été émis et n’est pas révoqué actuellement ; il n’case activée pas que l’heure et la date actuelles se trouvent dans la période pendant laquelle le certificat est valide (les propriétés de certificat NotBefore et NotAfter). Une application qui utilise cette méthode est également responsable de la vérification de l’expiration du certificat.

Les tâches d’administration utilisent DCOM. Le code qui appelle cette méthode d’interface telle que définie dans une version antérieure de Certadm.h s’exécute sur les serveurs Windows tant que le client et le serveur exécutent le même système d’exploitation Windows.

Exemples

    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);

Configuration requise

Condition requise Valeur
Client minimal pris en charge Aucun pris en charge
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête certadm.h (include Certsrv.h)
Bibliothèque Certidl.lib
DLL Certadm.dll

Voir aussi

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig