Condividi tramite


Metodo ICEnroll::createFilePKCS10 (xenroll.h)

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

Il metodo createFilePKCS10 crea una richiesta di certificato PKCS #10 con codifica Base64 e la salva in un file. Questo metodo è stato definito per la prima volta nell'interfaccia ICEnroll .

Questo metodo differisce dal metodo createPKCS10 solo nel salvataggio della richiesta di certificato PKCS #10 con codifica base64 (in formato BSTR ) nel file specificato dal parametro wszPKCS10FileName .

Sintassi

HRESULT createFilePKCS10(
  [in] BSTR DNName,
  [in] BSTR Usage,
  [in] BSTR wszPKCS10FileName
);

Parametri

[in] DNName

Nome distinto (DN) dell'entità per cui viene effettuata la richiesta. DNName deve seguire la convenzione di denominazione X.500 . Ad esempio"CN=User, O=Microsoft". Se non esiste un prefisso di due lettere, è possibile specificare invece un identificatore di oggetto (OID).

[in] Usage

OID che descrive lo scopo del certificato generato, ad esempio il certificato Authenticode singolo o commerciale o l'autenticazione client. È anche possibile specificare più URI separati da una virgola.

L'OID viene passato alla richiesta PKCS #10. Il controllo non esamina l'OID.

[in] wszPKCS10FileName

Nome del file in cui viene salvato il file CON CODIFICA BASE64 PKCS #10 (in formato BSTR ). Il contenuto di questo file può essere inviato a un'autorità di certificazione per l'elaborazione .

Valore restituito

VB

Il valore restituito è HRESULT. Il valore S_OK indica l'esito positivo.

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

Commenti

Per impostazione predefinita, viene usato il provider di crittografia Di base Microsoft e viene creata una chiave di firma univoca.

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 e se l'utente consentirà un'operazione di scrittura nel file system.

Esempio

BSTR bstrDN = NULL;
BSTR bstrOID = NULL;
BSTR bstrFileName = NULL;
ICEnroll4 * pEnroll = 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 **)&pEnroll);
if (FAILED(hr))
{
    printf("Failed CoCreateInstance - pEnroll [%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
if (NULL == bstrDN)
{
    printf("Memory allocation failed for bstrDN.\n");
    goto error;
}

// Generate the OID. For example, "1.3.6.1.4.1.311.2.1.21"
bstrOID = SysAllocString(TEXT("<OIDHERE>"));
if (NULL == bstrOID)
{
    printf("Memory allocation failed for bstrOID.\n");
    goto error;
}

// Specify the file name, for example, "myPKCS10.req"
bstrFileName = SysAllocString(TEXT("<FILENAMEHERE>"));
if (NULL == bstrFileName)
{
    printf("Memory allocation failed for bstrFileName.\n");
    goto error;
}

// Create the PKCS10 (stored in a file).
hr = pEnroll->createFilePKCS10( bstrDN, bstrOID, bstrFileName );
if (FAILED(hr))
{
   printf("Failed createFilePKCS10 - %x\n", hr);
   goto error;
}
else
    printf("Successfully created file containing PKCS10\n");

error:
// Clean up resources and so on.

if ( bstrFileName )
    SysFreeString( bstrFileName );

if ( bstrDN )
    SysFreeString( bstrDN );

if ( bstrOID )
    SysFreeString( bstrOID );

if ( pEnroll )
       pEnroll->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