Freigeben über


ICertAdmin::SetRequestAttributes-Methode (certadm.h)

Die SetRequestAttributes-Methode legt Attribute in der angegebenen ausstehenden Zertifikatanforderung fest. Diese Methode wurde zuerst in der ICertAdmin-Schnittstelle definiert.

Damit diese Methode erfolgreich ist, muss die Zertifikatanforderung ausstehend sein.

Syntax

HRESULT SetRequestAttributes(
  [in] const BSTR strConfig,
  [in] LONG       RequestId,
  [in] const BSTR strAttributes
);

Parameter

[in] strConfig

Stellt eine gültige Konfigurationszeichenfolge für den Zertifizierungsstellenserver im Format COMPUTERNAME\CANAME dar, wobei COMPUTERNAME der Netzwerkname des Zertifikatdiensteservers und CANAME der allgemeine Name der Zertifizierungsstelle ist, wie er während der Einrichtung der Zertifikatdienste eingegeben wurde. Informationen zum Namen der Konfigurationszeichenfolge finden Sie unter ICertConfig.

Wichtig: SetRequestAttributes 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 erneut mit der neuen Konfigurationszeichenfolge aufrufen.
 

[in] RequestId

Gibt die ID der Anforderung an, die die Attribute empfängt.

[in] strAttributes

Gibt die Attributdaten an. Jedes Attribut ist ein Name-Wert-Zeichenfolgenpaar. Das Doppelpunktzeichen trennt den Namen und den Wert, und ein Zeilenumbruchzeichen trennt mehrere Name-Wert-Paare, z. B.:

C++ AttributeName1:AttributeValue1\nAttributeName2:AttributeValue2
VB AttributeName1:AttributeValue1 & vbNewLine & AttributeName2:AttributeValue2
Es gibt keine festgelegte Beschränkung für die Anzahl von Anforderungsattributen, die einer Anforderung hinzugefügt werden können.

Wenn Zertifikatdienste Attributnamen analysieren, werden Leerzeichen, Bindestriche (Minuszeichen) und Groß-/Kleinschreibung ignoriert. Attributname1, Attributname1 und Attributname1 sind z. B. gleichwertig. Für Attributwerte ignoriert Certificate Services führende und nachfolgende Leerzeichen.

Hinweis Die maximale Länge für einen Attributnamen beträgt 127 Zeichen ungleich NULL . Die maximale Länge für einen Attributwert beträgt 4.096 Zeichen ungleich NULL .
 

Rückgabewert

VB

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.

Hinweise

Attribute , die durch Aufrufen von SetRequestAttributes hinzugefügt oder aktualisiert werden, ändern nicht die anfängliche, nicht analysierte Attributzeichenfolge, die der Zertifikatanforderung zugeordnet ist. Die nicht analysierte Attributzeichenfolge der Zertifikatanforderung ist nach der Anforderung des Zertifikats nicht mehr änderbar (die ICertRequest::Submit-Methode ermöglicht die Angabe von Attributen zum Zeitpunkt der Zertifikatanforderung).

Sie können das MMC-Snap-In zertifizierungsstellen verwenden, um die anfängliche, nicht analysierte Anforderungsattributzeichenfolge anzuzeigen.

Wenn Sie die analysierten Attribute anzeigen, werden auch alle Änderungen angezeigt, die auf Aufrufe von SetRequestAttributes zurückzuführen sind.

So zeigen Sie die analysierten Attribute an

  1. Öffnen Sie das MMC-Snap-In Zertifizierungsstelle.
  2. Öffnen Sie den Ordner Ausstehende Anforderungen .
  3. Klicken Sie mit der rechten Maustaste auf eine Anforderung, zeigen Sie auf Alle Aufgaben, und klicken Sie dann auf Attribute/Erweiterungen anzeigen.
Zum Aufzählen oder Anzeigen aller analysierten Attribute, einschließlich der mit SetRequestAttributes hinzugefügten Attribute, können Sie auch die IEnumCERTVIEWATTRIBUTE-Schnittstelle verwenden.

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

    BSTR bstrAttribs = NULL;
    BSTR bstrCA = NULL;
    long nReqID;  // request ID

    //  Specify the attributes.
    //  For example, "AttName1:AttValue1\nAttName2:AttValue2". 
    bstrAttribs = SysAllocString(L"<ATTRIBUTESHERE>");
    if (NULL == bstrAttribs)
    {
        printf("Memory allocation failed for bstrAttribs.\n");
        goto error;
    }
    
    bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
    if (NULL == bstrCA)
    {
        printf("Memory allocation failed for bstrCA.\n");
        goto error;
    }

    //  Request ID to receive the attributes.
    nReqID = <REQUESTIDHERE>;

    //  Add these attributes to the certificate.
    //  pCertAdmin is a previously instantiated
    //  ICertAdmin object pointer. 
    hr = pCertAdmin->SetRequestAttributes( bstrCA,
                                           nReqID,
                                           bstrAttribs );
    if (FAILED(hr))
        printf("Failed SetRequestAttributes [%x]\n", hr);
    else
        printf("SetRequestAttributes succeeded\n");

    //  Done processing.

error:

    if (bstrAttribs)
        SysFreeString(bstrAttribs);
    if (bstrCA)
        SysFreeString(bstrCA);
    //  Free other resources.

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

IEnumCERTVIEWATTRIBUTE