Partager via


Méthode ICertConfig ::GetConfig (certcli.h)

La méthode GetConfig récupère la chaîne de configuration d’un serveur Des services de certificat . Cette méthode a d’abord été définie dans l’interface ICertConfig .

La chaîne de configuration est le nom du serveur et le nom de l’autorité de certification séparés par une barre oblique inverse (\) ; par exemple : Nom_ca_\nom_serveur. Cette chaîne de configuration peut être utilisée pour faire référence sans ambiguïté à un serveur de services de certificat spécifique. Pour plus d'informations, consultez la section Notes.

Syntaxe

HRESULT GetConfig(
  [in]  LONG Flags,
  [out] BSTR *pstrOut
);

Paramètres

[in] Flags

Valeur qui spécifie l’autorité de certification à utiliser. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
CC_DEFAULTCONFIG
0x00000000
Récupère l’autorité de certification par défaut.
CC_FIRSTCONFIG
0x00000002
Retourne la première autorité de certification.
CC_LOCALACTIVECONFIG
0x00000004
Récupère l’autorité de certification locale si elle est en cours d’exécution.
CC_LOCALCONFIG
0x00000003
Récupère l’autorité de certification locale.
CC_UIPICKCONFIG
0x00000001
Affiche une interface utilisateur qui permet à l’utilisateur de sélectionner une autorité de certification.
CC_UIPICKCONFIGSKIPLOCALCA
0x00000005
Affiche une interface utilisateur qui permet à l’utilisateur de sélectionner une autorité de certification. L’interface utilisateur exclut toute autorité de certification locale. Cette exclusion est utile lors du renouvellement du certificat de l’autorité de certification subordonnée lorsque la demande de certificat de l’autorité de certification subordonnée est envoyée à une autorité de certification autre que l’autorité de certification actuelle.

[out] pstrOut

Pointeur vers un BSTR qui contient la configuration. Une fois la configuration terminée, appelez la fonction SysFreeString pour libérer pbstrOut.

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 une chaîne qui contient la configuration.

Remarques

La partie du nom de l’autorité de certification de la chaîne de configuration retournée par cette fonction correspond au texte exact entré pendant le processus d’installation des services de certification. Notez que ce texte peut être différent de la forme du nom de l’autorité de certification qui se trouve dans les noms de fichiers (par exemple, pour la liste de révocation de certificat) ou dans les clés de Registre. En effet, les noms de fichiers et les clés de Registre utilisent une version aseptisée du nom de l’autorité de certification.

Le processus d’assainissement du nom de l’autorité de certification est nécessaire pour supprimer les caractères qui ne sont pas valides pour les noms de fichiers, les noms de clés de Registre ou les valeurs de nom unique, ou qui sont non valides pour des raisons spécifiques aux services de certificats. Dans le processus d’assainissement, tout caractère non valide dans le nom commun est converti en une représentation de cinq caractères au format !xxxx, où ! est utilisé comme caractère d’échappement et xxxx représente quatre chiffres hexadécimaux qui identifient de manière unique le caractère à convertir.

Par exemple, le signe numérique (#) n’est pas autorisé dans les noms uniques dans Active Directory. Si le nom de l’autorité de certification entré lors de l’installation est #YourName, le nom de l’autorité de certification assainie sera !0023YourName.

Les caractères suivants, s’ils sont entrés pour le nom commun de l’autorité de certification pendant l’installation, sont convertis en !format xxxx pendant le processus d’assainissement. Cette liste est susceptible d’être modifiée.

Nom Caractère Valeur au format !xxxx
Et commercial & !0026
Apostrophe ' !0027
Astérisque * !002a
Barre oblique inverse \ !005c
Accolade gauche { !007b
Accolade droite } !007d
Crochet gauche [ !005b
Crochet droit ] !005d
Caret ^ !005e
Deux-points : !003a
Comma , !002c
Signe Égal à = !003d
Point d’exclamation ! !0021
Accent grave ` !0060
Supérieur au signe > !003e
Inférieur au signe < !003c
Signe numérique # !0023
Parenthèse ouvrante ( !0028
Parenthèse fermante ) !0029
Pourcentage % !0025
Pipe | !007c
Signe Plus + !002b
Point d'interrogation ? !003f
Guillemets " !0022
Point-virgule ; !003b
Barre oblique / !002f
 

Tous les caractères non imprimables et tous les caractères Unicode qui ne sont pas sept bits sont également convertis en !format xxxx .

Un nom court aseptisé est généré lorsque le nom assainit est trop long pour un nom unique relatif des services d’annuaire (RDN) de 64 caractères. Le nom court aseptisé se compose du nom tronqué et ajouté d’un hachage du nom nettoyé complet. Le nom court nettoyé réserve certains des 64 caractères pour contenir des suffixes de liste de révocation de certificats (CRL), tels que (123).

La partie nom de l’autorité de certification de la chaîne de configuration retournée par cette méthode est le texte d’origine entré lors de l’installation. Notez que les méthodes des services de certification qui nécessitent un nom d’autorité de certification en tant que paramètre acceptent le nom d’autorité de certification entré à l’origine. Par exemple, pour le nom # de l’autorité de certification YourName, le
La méthode ICertView2 ::OpenConnection accepte #YourName comme partie d’autorité de certification du paramètre.

Exemples

L’exemple suivant montre comment utiliser cette méthode pour récupérer la chaîne de configuration d’autorité de certification par défaut.


    ICertConfig2 * pConfig = NULL;
    BSTR  bstrConfig = NULL; //Contains CA configuration name
    HRESULT    hr;

    hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
    if (FAILED(hr))
    {
        printf("Failed CoInitializeEx - [%x]\n", hr);
        goto error;
    }

    // Create an instance of the CertConfig object.
    hr = CoCreateInstance( CLSID_CCertConfig,
                           NULL,
                           CLSCTX_INPROC_SERVER,
                           IID_ICertConfig2,
                           (void **)&pConfig);
    if (FAILED(hr))
    {
        printf("Failed CoCreateInstance - pConfig [%x]\n", hr);
        goto error;
    }

    // Retrieve the default CA configuration string.
    hr = pConfig->GetConfig(CC_DEFAULTCONFIG, &bstrConfig);
    if (FAILED(hr))
    {
        printf("Failed GetConfig - [%x]\n", hr);
        goto error;
    }
    else
        printf("GetConfig returned: %ws\n", bstrConfig );

error:

    // Done processing.
    if (pConfig)
        pConfig->Release();

    if (bstrConfig)
        SysFreeString(bstrConfig);

    CoUninitialize();

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

Voir aussi

CCertConfig

ICertConfig

ICertView2 ::OpenConnection