Condividi tramite


Metodo IX509CertificateRequestCmc2::InitializeFromTemplate (certenroll.h)

Il metodo InitializeFromTemplate inizializza la richiesta di certificato usando un modello.

Sintassi

HRESULT InitializeFromTemplate(
  [in] X509CertificateEnrollmentContext context,
  [in] IX509EnrollmentPolicyServer      *pPolicyServer,
  [in] IX509CertificateTemplate         *pTemplate
);

Parametri

[in] context

Valore del tipo di enumerazione X509CertificateEnrollmentContext che specifica se il certificato richiesto è destinato a un utente finale, un computer o un amministratore che agisce per conto del computer. Questo può essere uno dei valori seguenti.

Valore Significato
ContextUser
Il certificato viene richiesto per un utente finale.
ContextMachine
Il certificato viene richiesto per un computer.
ContextAdministratorForceMachine
Il certificato viene richiesto da un amministratore che agisce per conto di un computer.

[in] pPolicyServer

Puntatore a un oggetto IX509EnrollmentPolicyServer che rappresenta il server CEP (Certificate Enrollment Policy) che contiene il modello specificato dal parametro pTemplate .

[in] pTemplate

Puntatore a un oggetto IX509CertificateTemplate che rappresenta il modello da usare durante l'inizializzazione.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce S_OK.

Se la funzione ha esito negativo, restituisce un valore HRESULT che indica l'errore. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente. Per un elenco di codici di errore comuni, vedere Valori HRESULT comuni.

Codice restituito Descrizione
E_POINTER
I parametri pPolicyServer e pTemplate non possono essere NULL.
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
L'oggetto richiesta certificato è già stato inizializzato.

Commenti

Il metodo InitializeFromTemplate crea le raccolte seguenti:

  • Insieme ICryptAttributes .
  • Raccolta IX509Extensions .
  • Insieme IObjectIds popolato con i XCN_OID_KEY_USAGE predefiniti e gli identificatori di oggetto XCN_OID_BASIC_CONSTRAINTS2.
  • Insieme IObjectIds vuoto per gli OID di attributo e estensione da eliminare dalla nuova richiesta.

Il metodo esamina quindi il modello ed esegue le azioni seguenti:

  • Aggiunge le estensioni specificate dal modello all'insieme IX509Extensions .
  • Rimuove le estensioni critiche predefinite (XCN_OID_KEY_USAGE e XCN_OID_BASIC_CONSTRAINTS2) dalla raccolta se il modello indica che non sono critici. Vengono aggiunti gli ID contrassegnati come critici dal modello.
  • Imposta la proprietà SmimeCapabilities se il modello supporta algoritmi simmetrici.
  • Imposta la proprietà AlternateSignatureAlgorithm se il modello richiede un OID dell'algoritmo di firma discreto.
  • Crea un oggetto IX509SignatureInformation .
  • Crea un OID dell'algoritmo hash se l'algoritmo viene specificato nel modello e lo imposta nell'oggetto IX509SignatureInformation .
  • Crea un OID di crittografia asimmetrica se l'algoritmo viene specificato nel modello e lo imposta nell'oggetto IX509SignatureInformation .
  • Popola molte delle proprietà IX509PrivateKey dalle impostazioni del modello.

Se la proprietà CSPInformations è NULL, il metodo crea un insieme ICspInformations dai provider installati nel computer.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione certenroll.h

Vedi anche

IX509CertificateRequestCmc2