Metodo ICertAdmin::SetRequestAttributes (certadm.h)

Il metodo SetRequestAttributes imposta gli attributi nella richiesta di certificato in sospeso specificata. Questo metodo è stato definito per la prima volta nell'interfaccia ICertAdmin .

Affinché questo metodo abbia esito positivo, la richiesta di certificato deve essere in sospeso.

Sintassi

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

Parametri

[in] strConfig

Rappresenta una stringa di configurazione valida per il server dell'autorità di certificazione (CA) nel formato NOMECOMPUTER\CANAME, dove COMPUTERNAME è il nome di rete del server Servizi certificati e CANAME è il nome comune dell'autorità di certificazione, come immesso durante l'installazione di Servizi certificati. Per informazioni sul nome della stringa di configurazione, vedere ICertConfig.

ImportanteSetRequestAttributes non cancella la cache interna quando viene modificata la stringa di configurazione. Quando si modifica la stringa di configurazione per la CA, è necessario creare un'istanza di un nuovo oggetto ICertAdmin e chiamare di nuovo questo metodo con la nuova stringa di configurazione.
 

[in] RequestId

Specifica l'ID della richiesta che riceve gli attributi.

[in] strAttributes

Specifica i dati dell'attributo. Ogni attributo è una coppia di stringhe nome-valore. Il carattere due punti separa il nome e il valore e un carattere di nuova riga separa più coppie nome-valore, ad esempio:

C++ AttributeName1:AttributeValue1\nAttributeName2:AttributeValue2
VB AttributeName1:AttributeValue1 & vbNewLine & AttributeName2:AttributeValue2
Non esiste alcun limite impostato al numero di attributi di richiesta che possono essere aggiunti a una richiesta.

Quando Servizi certificati analizza i nomi degli attributi, ignora spazi, trattini (segni meno) e maiuscole/minuscole. Ad esempio, AttributeName1, Attribute Name1 e Attribute-name1 sono tutti equivalenti. Per i valori degli attributi, Servizi certificati ignora gli spazi vuoti iniziali e finali.

Nota La lunghezza massima per un nome di attributo è di 127 caratteri non NULL . La lunghezza massima per un valore di attributo è 4.096 caratteri non NULL .
 

Valore restituito

VB

Se il metodo ha esito positivo, il metodo restituisce S_OK.

Se il metodo ha esito negativo, restituisce un valore HRESULT che indica l'errore. Per un elenco dei codici di errore comuni, vedere Valori HRESULT comuni.

Commenti

Gli attributi aggiunti o aggiornati chiamando SetRequestAttributes non modificano la stringa di attributo iniziale non analizzata associata alla richiesta di certificato. La stringa dell'attributo non analizzato della richiesta di certificato non è modificabile dopo la richiesta del certificato (il metodo ICertRequest::Submit consente di specificare gli attributi al momento della richiesta del certificato).

È possibile usare lo snap-in MMC Autorità di certificazione per visualizzare la stringa iniziale dell'attributo di richiesta non analizzata.

Quando si visualizzano gli attributi analizzati, verranno visualizzate anche eventuali modifiche dovute alle chiamate a SetRequestAttributes.

Per visualizzare gli attributi analizzati

  1. Aprire lo snap-in MMC Autorità di certificazione.
  2. Aprire la cartella Richieste in sospeso .
  3. Fare clic con il pulsante destro del mouse su una richiesta, scegliere Tutte le attività e quindi fare clic su Visualizza attributi/estensioni.
Per enumerare o visualizzare tutti gli attributi analizzati, inclusi quelli aggiunti tramite SetRequestAttributes, è anche possibile usare l'interfaccia IEnumCERTVIEWATTRIBUTE .

Le attività di amministrazione usano DCOM. Il codice che chiama questo metodo di interfaccia come definito in una versione precedente di Certadm.h verrà eseguito su server basati su Windows, purché il client e il server eseguano entrambi lo stesso sistema operativo Windows.

Esempio

    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.

Requisiti

Requisito Valore
Client minimo supportato Nessuno supportato
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione certadm.h (include Certsrv.h)
Libreria Certidl.lib
DLL Certadm.dll

Vedi anche

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig

IEnumCERTVIEWATTRIBUTE