Condividi tramite


Metodo IX509CertificateTemplateWritable::Commit (certenroll.h)

Il metodo Commit elimina un modello da o lo salva in Active Directory.

Sintassi

HRESULT Commit(
  [in] CommitTemplateFlags commitFlags,
  [in] BSTR                strServerContext
);

Parametri

[in] commitFlags

Valore di enumerazione CommitTemplateFlags che specifica come salvare o eliminare il modello. Deve essere uno dei valori seguenti.

Valore Significato
CommitFlagSaveTemplateGenerateOID
Salvare il modello e crearne un identificatore.
CommitFlagSaveTemplateUseCurrentOID
Non usato.
CommitFlagSaveTemplateOverwrite
Non usato.
CommitFlagDeleteTemplate
Eliminare il modello.

[in] strServerContext

Variabile BSTR contenente il nome DNS del server Active Directory a cui verranno applicate le modifiche. Se questo valore è NULL, le modifiche verranno applicate al controller di dominio predefinito.

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

Codice restituito Descrizione
CRYPT_E_EXISTS
CommitFlagSaveTemplateGenerateOID è stato specificato nell'argomento commitFlags , ma esiste già un modello con un nome comune corrispondente o un OID (Matching Object Identifier).
CRYPT_E_NOT_FOUND
CommitFlagDelete è stato specificato nell'argomento commitFlags e è stato trovato un modello con lo stesso nome comune, ma l'OID non corrisponde.
E_ACCESSDEINED
Il chiamante non dispone dell'autorizzazione appropriata per salvare o eliminare un modello. Il chiamante deve disporre dell'autorizzazione di scrittura ed eliminazione per il contenitore di modelli e gli oggetti modello in Active Directory. Se il chiamante dispone dell'autorizzazione di eliminazione per il contenitore modello e gli oggetti ma non dispone dell'autorizzazione di eliminazione per il contenitore OID e gli oggetti, il modello verrà eliminato ma l'OID non sarà.
E_NOTIMPL
CommitFlagSaveTemplateUseCurrentOID o CommitFlagSaveTemplateOverwrite è stato specificato nell'argomento commitFlags. Questi valori non sono attualmente utilizzati.
HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
CommitFlagDelete è stato specificato nell'argomento commitFlags , ma non è stato possibile trovare un modello con un nome comune (CN) corrispondente.
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
Il metodo Commit non è supportato per i modelli predefiniti.
OLE_E_BLANK
L'oggetto IX509CertificateTemplateWritable non è stato inizializzato.

Commenti

Quando CommitFlagSaveTemplateGenerateOID viene specificato nell'argomento commitFlags , questo metodo non avrà esito positivo a meno che il modello e i contenitori OID non siano già stati creati. Questi contenitori possono essere creati in uno dei modi seguenti:

  • Installazione di un'autorità di certificazione aziendale nel server.
  • Avvio dello snap-in Certtmpl.msc.
  • Usando il comando Certutil.exe -installDefaultTemplates per installare i modelli predefiniti.

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

IX509CertificateTemplateWritable