Freigeben über


ICertConfig::GetConfig-Methode (certcli.h)

Die GetConfig-Methode ruft die Konfigurationszeichenfolge für einen Certificate Services-Server ab. Diese Methode wurde zuerst in der ICertConfig-Schnittstelle definiert.

Die Konfigurationszeichenfolge ist der Servername und der Name der Zertifizierungsstelle , getrennt durch einen umgekehrten Schrägstrich (\); Beispiel: ServerName\CAName. Diese Konfigurationszeichenfolge kann verwendet werden, um eindeutig auf einen bestimmten Certificate Services-Server zu verweisen. Weitere Informationen finden Sie in den Hinweisen.

Syntax

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

Parameter

[in] Flags

Wert, der die zu verwendende Zertifizierungsstelle angibt. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
CC_DEFAULTCONFIG
0x00000000
Ruft die Standardzertifizierungsstelle ab.
CC_FIRSTCONFIG
0x00000002
Gibt die erste Zertifizierungsstelle zurück.
CC_LOCALACTIVECONFIG
0x00000004
Ruft die lokale Zertifizierungsstelle ab, wenn sie ausgeführt wird.
CC_LOCALCONFIG
0x00000003
Ruft die lokale Zertifizierungsstelle ab.
CC_UIPICKCONFIG
0x00000001
Zeigt eine Benutzeroberfläche an, die es dem Benutzer ermöglicht, eine Zertifizierungsstelle auszuwählen.
CC_UIPICKCONFIGSKIPLOCALCA
0x00000005
Zeigt eine Benutzeroberfläche an, die es dem Benutzer ermöglicht, eine Zertifizierungsstelle auszuwählen. Die Benutzeroberfläche schließt jede lokale Zertifizierungsstelle aus. Dieser Ausschluss ist während der Zertifikatverlängerung einer untergeordneten Zertifizierungsstelle nützlich, wenn die Zertifikatanforderung der untergeordneten Zertifizierungsstelle an eine andere Zertifizierungsstelle als die aktuelle Zertifizierungsstelle übermittelt wird.

[out] pstrOut

Ein Zeiger auf einen BSTR , der die Konfiguration enthält. Wenn Sie mit der Konfiguration fertig sind, rufen Sie die SysFreeString-Funktion auf, um pbstrOut frei zu machen.

Rückgabewert

C++

Wenn die Methode erfolgreich ist, gibt die Methode S_OK zurück.

Wenn die Methode fehlschlägt, gibt sie einen HRESULT-Wert zurück, der den Fehler angibt. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.

VB

Der Rückgabewert ist eine Zeichenfolge, die die Konfiguration enthält.

Hinweise

Der Name der Zertifizierungsstelle (Zertifizierungsstelle ) der Konfigurationszeichenfolge, den diese Funktion zurückgibt, ist der genaue Text, der während des Einrichtungsprozesses der Zertifikatdienste eingegeben wird. Beachten Sie, dass sich dieser Text möglicherweise von der Form des Zertifizierungsstellennamens unterscheidet, der in Dateinamen (z. B. für die Zertifikatsperrliste) oder in Registrierungsschlüsseln gefunden wird. Dies liegt daran, dass Dateinamen und Registrierungsschlüssel eine sanitisierte Version des Zertifizierungsstellennamens verwenden.

Der Prozess der Bereinigung des Zertifizierungsstellennamens ist erforderlich, um Zeichen zu entfernen, die für Dateinamen, Registrierungsschlüsselnamen oder distinguished Name-Werte unzulässig oder aus gründenspezifizierlichen Zertifikatdiensten unzulässig sind. Beim Desinfektionsprozess wird jedes ungültige Zeichen im allgemeinen Namen in eine fünfstellige Darstellung im Format konvertiert !xxxx, wobei ! als Escapezeichen und xxxx vier Hexadezimalstellen darstellt, die das zu konvertierende Zeichen eindeutig identifizieren.

Beispielsweise ist das Nummernzeichen (#) in Distinguished Names in Active Directory nicht zulässig. Wenn der während des Setups eingegebene Zertifizierungsstellenname IhrName ist#, lautet der name der sanitisierten Zertifizierungsstelle !0023YourName.

Die folgenden Zeichen werden, wenn sie während des Setups für den allgemeinen Namen der Zertifizierungsstelle eingegeben werden, in die konvertiert .xxxx-Format während des Desinfektionsprozesses. Änderungen der Liste vorbehalten.

Name Zeichen Wert im !xxxx-Format
Kaufmännisches Und-Zeichen & !0026
Apostroph ' !0027
Asterisk * !002a
Umgekehrter Schrägstrich \ !005c
Linke Klammer { !007b
Rechte Klammer } !007d
Linke eckige Klammer [ !005b
Rechte eckige Klammer ] !005d
Einfügemarke ^ !005e
Doppelpunkt : !003a
Komma , !002c
Gleichheitszeichen = !003d
Ausrufezeichen ! !0021
Ernster Akzent ` !0060
Größer als Vorzeichen > !003e
Kleiner als Vorzeichen < !003c
Nummernzeichen # !0023
Öffnende Klammer ( !0028
Schließende Klammer ) !0029
Percent % !0025
Pipe | !007c
Pluszeichen + !002b
Fragezeichen ? !003f
Anführungszeichen " !0022
Semicolon ; !003b
Schrägstrich / !002f
 

Alle nicht druckenden Zeichen und alle Unicode-Zeichen , die keine sieben Bits sind, werden ebenfalls in die konvertiert .xxxx-Format .

Ein bereinigter kurzer Name wird generiert, wenn der sanitisierte Name für einen 64-stelligen Verzeichnisdienst relativer distinguished Name (RDN) zu lang ist. Der bereinigungskurierte Kurzname besteht aus dem abgeschnittenen und mit einem Hash des vollständigen sanitisierten Namens versehen. Der bereinigte Kurzname reserviert einige der 64 Zeichen, um Suffixe der Zertifikatsperrliste (Certificate Revocation List , CRL) zu enthalten, z. B. (123).

Der Teil des Zertifizierungsstellennamens der von dieser Methode zurückgegebenen Konfigurationszeichenfolge ist der ursprüngliche Text, der während des Setups eingegeben wurde. Beachten Sie, dass Certificate Services-Methoden, die einen Zertifizierungsstellenamen als Parameter erfordern, den ursprünglich eingegebenen Namen der Zertifizierungsstelle akzeptieren. Beispiel: Für den Zertifizierungsstellenamen #YourName
Die ICertView2::OpenConnection-Methode akzeptiert #YourName als Teil der Zertifizierungsstelle des Parameters.

Beispiele

Das folgende Beispiel zeigt, wie Sie diese Methode verwenden, um die Standardkonfigurationszeichenfolge der Zertifizierungsstelle abzurufen.


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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Nicht unterstützt
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile certcli.h (include Certsrv.h)
Bibliothek Certidl.lib
DLL Certcli.dll

Weitere Informationen

CCertConfig

ICertConfig

ICertView2::OpenConnection