Condividi tramite


Metodo ICEnroll4::createRequest (xenroll.h)

[Questo metodo non è più disponibile per l'uso a partire da Windows Server 2008 e Windows Vista.]

Il metodo createRequest crea una richiesta di certificato di formato PKCS #10, PKCS #7 o full Certificate Management over CMC (CMC) e lo archivia in una stringa. Questo metodo è stato definito per la prima volta nell'interfaccia ICEnroll4 .

Sintassi

HRESULT createRequest(
  [in]  LONG Flags,
  [in]  BSTR strDNName,
  [in]  BSTR Usage,
  [out] BSTR *pstrRequest
);

Parametri

[in] Flags

Valore che specifica il tipo di richiesta di certificato da creare. Questo può essere uno dei valori seguenti.

Valore Significato
XECR_CMC
CmC completo
XECR_PKCS10_V1_5
PKCS 10
XECR_PKCS10_V2_0
PKCS 10 versione 2
XECR_PKCS7
PKCS 7

[in] strDNName

Questo parametro può essere NULL; in caso contrario, questo parametro specifica il nome distinto (DN) dell'entità per cui viene effettuata la richiesta. Il nome DN deve seguire la convenzione di denominazione X.500 , ad esempio "CN=User, O=Microsoft". Se non esiste un prefisso di due lettere, è possibile specificare un OID.

[in] Usage

Identificatore di oggetto (OID) che descrive lo scopo del certificato generato, ad esempio un certificato Authenticode singolo o commerciale o l'autenticazione client. È anche possibile specificare più ID separati da una virgola.

[out] pstrRequest

Puntatore a un formato BSTR (BASE64_HEADER) che riceve la richiesta. Al termine dell'uso della funzione BSTR, liberarla chiamando la funzione SysFreeString .

Valore restituito

C++

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 di codici di errore comuni, vedere Valori HRESULT comuni.

VB

Il valore restituito è un formato String (BASE64_HEADER formato) che contiene la richiesta.

Commenti

Quando questo metodo viene chiamato dallo script, il metodo visualizza un'interfaccia utente che chiede se l'utente consentirà la creazione di una richiesta di certificato. Se è stato specificato un file con estensione pvk o spc, il metodo visualizza un'interfaccia utente che chiede se l'utente consentirà un'operazione di scrittura al file system.

Esempio

BSTR bstrDN = NULL;
BSTR bstrReq = NULL;
ICEnroll4 * pEnroll4 = NULL;
HRESULT hr;

hr = CoInitializeEx( NULL, COINIT_APARTMENTTHREADED );
if (FAILED(hr))
{
    printf("Failed CoInitializeEx - %x\n", hr);
    goto error;
}

hr = CoCreateInstance( __uuidof(CEnroll),
                       NULL,
                       CLSCTX_INPROC_SERVER,
                       __uuidof(ICEnroll4),
                       (void **)&pEnroll4);
if (FAILED(hr))
{
    printf("Failed CoCreateInstance - pEnroll4 [%x]\n", hr);
    goto error;
}

// generate the DN for the cert request
bstrDN = SysAllocString( TEXT("CN=Your Name")   // common name
                         TEXT(",OU=Your Unit")  // org unit
                         TEXT(",O=Your Org")    // organization
                         TEXT(",L=Your City")   // locality
                         TEXT(",S=Your State")  // state
                         TEXT(",C=Your Country") );  // country/region

// create the CMC request
hr = pEnroll4->createRequest( XECR_CMC,
                              bstrDN,
                              NULL,
                              &bstrReq );
if (FAILED(hr))
{
        printf("Failed createRequest - pEnroll4 [%x]\n", hr);
        goto error;
}
else
    // do something with the CMC (bstrReq);

error:

//clean up resources, and so on
if ( bstrDN )
    SysFreeString( bstrDN );
if ( bstrReq )
    SysFreeString( bstrReq );
if ( pEnroll4 )
    pEnroll4->Release();

CoUninitialize();

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione xenroll.h
Libreria Uuid.lib
DLL Xenroll.dll