Méthode ICertServerExit::GetCertificateProperty (certif.h)

La méthode GetCertificateProperty retourne une propriété nommée à partir d’un certificat.

Syntaxe

HRESULT GetCertificateProperty(
  [in]  const BSTR strPropertyName,
  [in]  LONG       PropertyType,
  [out] VARIANT    *pvarPropertyValue
);

Paramètres

[in] strPropertyName

Spécifie la propriété nommée à récupérer. Il existe un ensemble stock de propriétés de certificat, appelées propriétés de nom, qui sont toujours valides et peuvent être récupérées en appelant cette méthode. Pour plus d’informations sur ces propriétés, consultez Propriétés du nom. Les autres propriétés qui peuvent être récupérées incluent les propriétés de certificat.

Les propriétés suivantes sont propres aux certificats et peuvent être lues par GetCertificateProperty.

Valeur Signification
NotBefore
Date/Heure
Date de validité de début du certificat
NotAfter
Date/Heure
Date d’expiration du certificat
PublicKeyAlgorithm
String
Identificateur d’objet de l’algorithme de clé d’objet (OID)
RawCertificate
Binary
Octets de certificat bruts
RawPublicKey
Binary
Clé d’objet
RawPublicKeyAlgorithmParameters
Binary
Paramètres de l’algorithme de clé d’objet
RequestID
Long signé
ID de requête interne
SerialNumber
String
Numéro de série du certificat
 

Les propriétés DistinguishedName, RawName et SerialNumber du certificat sont accessibles par GetCertificateProperty uniquement une fois que le module de stratégie a terminé le traitement de la demande et que le certificat est émis.

Les propriétés suivantes s’appliquent à l’autorité de certification. Le contexte doit être égal à zéro pour lire l’une de ces propriétés. Le contexte est défini sur zéro lors de la création initiale de l’objet ICertServerExit . Il peut également être défini sur zéro en appelant la méthode SetContext .

Valeur Signification
CAType
Long
Type d’autorité de certification. Il peut s’agir de l’une des valeurs suivantes (définies dans Certsrv.h) :

ENUM_ENTERPRISE_ROOTCA

ENUM_ENTERPRISE_SUBCA

ENUM_STANDALONE_ROOTCA

ENUM_STANDALONE_SUBCA

CertCount
Long
Nombre de certificats d’autorité de certification. Cette valeur est une plus le nombre de fois où l’autorité de certification a été renouvelée. Pour plus d’informations sur le renouvellement, consultez Renouvellement de l’autorité de certification.
CertState
Long
État du certificat d’autorité de certification. Il peut s’agir de l’une des valeurs suivantes :
CA_DISP_ERROR : le certificat d’autorité de certification n’a jamais été émis.
CA_DISP_REVOKED : le certificat d’autorité de certification a été révoqué.
CA_DISP_VALID : le certificat d’autorité de certification est toujours valide.
CA_DISP_INVALID : le certificat d’autorité de certification a expiré.
Ce nom de propriété peut être ajouté avec « .# », où # représente un index de certificat d’autorité de certification (ou, dans le cas de la propriété CRLSuffix, un index CRLS). Pour plus d’informations sur les index de certificat et de liste de révocation de révocation de certificats, consultez Renouvellement de l’autorité de certification.
CertSuffix
String
Suffixe du certificat d’autorité de certification. Le suffixe est une chaîne vide pour les certificats d’autorité de certification avec un index de zéro ; sinon, le suffixe (sous la forme « (nn) », où nn est l’index de certificat) est appliqué à toutes les URL qui pointent vers des certificats d’autorité de certification stockés dans des fichiers ou des objets de service d’annuaire. Pour les URL non LDAP , le suffixe apparaît généralement avant le texte .crt ». Pour les URL LDAP, le suffixe est généralement ajouté au premier « CN= » dans le nom unique complet.

Ce nom de propriété peut être ajouté avec « .# », où # représente un index de certificat d’autorité de certification (ou, dans le cas de la propriété CRLSuffix, un index CRLS). Pour plus d’informations sur les index de certificat et de liste de révocation de révocation de certificats, consultez Renouvellement de l’autorité de certification.

CRLIndex
Long
Index de liste de révocation de certificats (CRL). L’ajout d’un index de certificat à ce nom de propriété vous permet de récupérer l’index CRL. L’index de liste de révocation de certificats ne correspond pas nécessairement à l’index de certificat. Pour plus d’informations, consultez Certification.

Ce nom de propriété peut être ajouté avec « .# », où # représente un index de certificat d’autorité de certification (ou, dans le cas de la propriété CRLSuffix, un index CRLS). Pour plus d’informations sur les index de certificat et de liste de révocation de révocation de certificats, consultez Renouvellement de l’autorité de certification.

CRLState
Long
État de la liste de révocation de certificats. Il peut s’agir de l’une des valeurs suivantes :
CA_DISP_ERROR : la liste de révocation de certificats est gérée par un autre certificat d’autorité de certification.
CA_DISP_REVOKED : tous les certificats d’autorité de certification non expirés qui utilisent la liste de révocation de certificats de ce certificat d’autorité de certification ont été révoqués.
CA_DISP_VALID : le certificat d’autorité de certification est toujours utilisé pour publier des listes de contrôle d’accès en fonction des besoins.
CA_DISP_INVALID : tous les certificats d’autorité de certification qui utilisent la liste de révocation de certificats de ce certificat d’autorité de certification ont expiré.
Ce nom de propriété peut être ajouté avec « .# », où # représente un index de certificat d’autorité de certification (ou, dans le cas de la propriété CRLSuffix, un index CRLS). Pour plus d’informations sur les index de certificat et de liste de révocation de révocation de certificats, consultez Renouvellement de l’autorité de certification.
CRLSuffix
String
Suffixe de la liste de révocation de certificats d’autorité de certification. Le suffixe est une chaîne vide pour les listes de contrôle d’accès avec un index de zéro ; sinon, le suffixe (sous la forme « (nn) », où nn est l’index de liste de révocation de certificats) est appliqué à toutes les URL pointant vers des listes de contrôle d’accès stockées dans des fichiers ou des objets de service d’annuaire. Pour les URL non LDAP, le suffixe apparaît généralement avant le texte .crl. Pour les URL LDAP, le suffixe est généralement ajouté au premier « CN= » dans le nom unique complet.

Ce nom de propriété peut être ajouté à « .# », où # représente un index de certificat d’autorité de certification (ou, dans le cas de la propriété CRLSuffix, un index de liste de révocation de certificats). Pour plus d’informations sur les indices de certificat et de liste de révocation de certificats, consultez Renouvellement de l’autorité de certification.

fUseDS
Long
Indique si l’autorité de certification utilise un service d’annuaire. Il peut s’agir de l’une des valeurs suivantes :
  • 0=no
  • 1=oui
MachineDNSName
String
Nom DNS du serveur hébergeant l’autorité de certification.
ModuleRegistryLocation
String
Emplacement du Registre disponible pour l’utilisation par le module.
RawCACertificate
Binary
Certificat d'autorité de certification.

Ce nom de propriété peut être ajouté à « .# », où # représente un index de certificat d’autorité de certification (ou, dans le cas de la propriété CRLSuffix, un index de liste de révocation de certificats). Pour plus d’informations sur les indices de certificat et de liste de révocation de certificats, consultez Renouvellement de l’autorité de certification.

RawCRL
Binary
Liste de révocation de certificats (CRL) de l’autorité de certification.

Ce nom de propriété peut être ajouté à « .# », où # représente un index de certificat d’autorité de certification (ou, dans le cas de la propriété CRLSuffix, un index de liste de révocation de certificats). Pour plus d’informations sur les indices de certificat et de liste de révocation de certificats, consultez Renouvellement de l’autorité de certification.

RequesterCAAccess
Long
Indique si le demandeur est autorisé à demander le certificat. Il peut s’agir de l’une des valeurs suivantes :
  • 0=no
  • 1=oui
(Le composant logiciel enfichable MMC autorité de certification peut être utilisé pour contrôler les autorisations de demande de certificat .)
SanitizedCAName
String
Nom aseptisé de l’autorité de certification. Pour plus d’informations sur les noms d’autorité de certification nettoyés, consultez ICertConfig::GetConfig.
SanitizedShortName
String
Nom assainissant pour l’autorité de certification, raccourci et contenant une valeur de hachage pour garantir l’unicité.

[in] PropertyType

Spécifie le type de propriété. Le type peut être l’un des suivants.

Valeur Signification
PROPTYPE_LONG
Données longues signées
PROPTYPE_DATE
Date/Heure
PROPTYPE_BINARY
Données binaires
PROPTYPE_STRING
Données de chaîne Unicode

[out] pvarPropertyValue

Pointeur vers un VARIANT qui contiendra la valeur de propriété. La valeur retournée est encodée en tant que BSTR. Utilisez la fonction SysStringByteLen pour récupérer la longueur du BSTR. L’objet BLOB binaire est stocké sous la forme d’un certificat X.509 codé Distinguished Encoding Rules.

Valeur retournée

C++

Si la méthode réussit, 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 est la valeur de propriété demandée.

Remarques

Vous devez appeler ICertServerExit::SetContext avant d’utiliser cette méthode.

Exemples

BSTR    bstrPropName = NULL;
VARIANT varProp;

VariantInit(&varProp);

// Set the property name to RequestID.
bstrPropName = SysAllocString(L"RequestID");

// Retrieve the certificate property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateProperty(bstrPropName,
                                             PROPTYPE_LONG,
                                             &varProp );
if (FAILED(hr))
{
    printf("Failed GetCertificateProperty [%x]\n", hr);
    goto error;
}
else
{
    // Successfully retrieved property; use varProp as needed.
    // ...
}

// Done processing.
if (NULL != bstrPropName)
    SysFreeString(bstrPropName);
VariantClear(&varProp);

Configuration requise

   
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 certif.h (include Certsrv.h)
Bibliothèque Certidl.lib
DLL Certcli.dll

Voir aussi

ICertServerExit

ICertServerExit::SetContext

Propriétés du nom