Freigeben über


ICertAdmin::GetCRL-Methode (certadm.h)

Die GetCRL-Methode ruft die aktuelle Zertifikatsperrliste (Certificate Revocation List , CRL) für die Zertifizierungsstelle (Certificate Services Certification Authority, CA) ab. Diese Methode wurde zuerst in der ICertAdmin-Schnittstelle definiert.

Syntax

HRESULT GetCRL(
  [in]  const BSTR strConfig,
  [in]  LONG       Flags,
  [out] BSTR       *pstrCRL
);

Parameter

[in] strConfig

Stellt eine gültige Konfigurationszeichenfolge für die Zertifizierungsstelle dar, deren Zertifikatsperrliste Sie abrufen möchten. Diese Zeichenfolge hat das Format COMPUTERNAME\CANAME, wobei COMPUTERNAME der Netzwerkname des Zertifikatdiensteservers und CANAME der allgemeine Name der Zertifizierungsstelle ist, wie er während des Setups der Zertifikatdienste eingegeben wurde. Informationen zum Namen der Konfigurationszeichenfolge finden Sie unter ICertConfig.

WichtigGetCRL löscht den internen Cache nicht, wenn die Konfigurationszeichenfolge geändert wird. Wenn Sie die Konfigurationszeichenfolge für die Zertifizierungsstelle ändern, müssen Sie ein neues ICertAdmin-Objekt instanziieren und diese Methode mit der neuen Konfigurationszeichenfolge erneut aufrufen.
 

[in] Flags

Gibt das Format der zurückgegebenen Zertifikatsperrliste an. Dieser Parameter kann eines der folgenden Flags sein.

Wert Bedeutung
CR_OUT_BASE64HEADER
BASE64-Format mit Anfang/Ende.
CR_OUT_BASE64
BASE64-Format ohne Anfang/Ende.
CR_OUT_BINARY
Binärformat.

[out] pstrCRL

Ein Zeiger auf einen BSTR , der die Zertifikatsperrliste empfängt.

Erstellen Sie bei Verwendung dieser Methode eine Variable vom Typ BSTR , legen Sie die Variable auf NULL fest, und übergeben Sie die Adresse dieser Variablen im pbstrCRL-Parameter . Wenn Sie die Verwendung der BSTR-Variablen abgeschlossen haben, geben Sie sie frei, indem Sie die SysFreeString-Funktion aufrufen.

Rückgabewert

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

Wenn die Funktion fehlschlägt, gibt sie einen HRESULT-Wert zurück, der den Fehler angibt. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.

Rückgabecode Beschreibung
E_POINTER
Der strConfig-Parameter kann nicht NULL sein, oder es wurde keine CRL gefunden.

Hinweise

Verwaltungsaufgaben verwenden DCOM. Code, der diese Schnittstellenmethode aufruft, wie in einer früheren Version von Certadm.h definiert, wird auf Windows-basierten Servern ausgeführt, solange der Client und der Server dasselbe Windows-Betriebssystem ausführen.

Beispiele

Im folgenden Beispiel werden die erforderlichen Variablen deklariert, COM initialisiert und eine instance der CertAdmin-Klasse erstellt. Anschließend wird GetCRL aufgerufen und ein Erfolg oder Fehler auf dem Bildschirm ausgegeben. Schließlich werden Ressourcen freigegeben.

    ICertAdmin * pCertAdmin = NULL;  // pointer to interface object
    BSTR bstrCA = NULL;              // variable for machine\CAName
    BSTR bstrCRL = NULL;             // variable to contain
                                     // the retrieved CRL

    HRESULT hr;

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

    //  Create the CertAdmin object
    //  and get a pointer to its ICertAdmin interface.
    hr = CoCreateInstance( CLSID_CCertAdmin,
                           NULL,
                           CLSCTX_INPROC_SERVER,
                           IID_ICertAdmin,
                           (void **)&pCertAdmin);
    if (FAILED(hr))
    {
        printf("Failed CoCreateInstance pCertAdmin [%x]\n", hr);
        goto error;
    }

    //  Note the use of two backslashes (\\) 
   //  in C++ to produce one backslash (\).
    bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
    if (FAILED(hr))
    {
        printf("Failed to allocate memory for bstrCA\n");
        goto error;
    }

    //  Retrieve the CRL.
    hr = pCertAdmin->GetCRL( bstrCA, CR_OUT_BINARY, &bstrCRL );
    if (FAILED(hr))
    {
        printf("Failed GetCRL [%x]\n", hr);
        goto error;
    }
    else
        printf("CRL retrieved successfully\n");
        //  Use the CRL as needed.

    //  Done processing.

error:

    //  Free BSTR values.
    if (NULL != bstrCA)
        SysFreeString(bstrCA);

    if (NULL != bstrCRL)
        SysFreeString(bstrCRL);

    //  Clean up object resources.
    if (NULL != pCertAdmin)
        pCertAdmin->Release();

    //  Free COM resources.
    CoUninitialize();

Anforderungen

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

Weitere Informationen

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig