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.
[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 |