IX509CertificateTemplateWritable::Commit 方法 (certenroll.h)

Commit 方法會從 中刪除範本,或將其儲存至 Active Directory。

語法

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

參數

[in] commitFlags

CommitTemplateFlags 列舉值,指定如何儲存或刪除範本。 這必須是下列其中一個值。

意義
CommitFlagSaveTemplateGenerateOID
儲存範本並為其建立物件標識碼。
CommitFlagSaveTemplateUseCurrentOID
未使用。
CommitFlagSaveTemplateOverwrite
未使用。
CommitFlagDeleteTemplate
刪除範本。

[in] strServerContext

BSTR 變數,其中包含將套用變更之 Active Directory 伺服器的 DNS 名稱。 如果此值為 NULL,則會將變更套用至預設域控制器。

傳回值

如果函式成功,函式會傳回 S_OK

如果函式失敗,它會傳回 指出錯誤的 HRESULT 值。 可能的值包括 (但不限於) 下表中的這些值。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

傳回碼 Description
CRYPT_E_EXISTS
CommitFlagSaveTemplateGenerateOID 已在 commitFlags 自變數中指定,但具有相符通用名稱的範本或相符的物件標識碼 (OID) 已經存在。
CRYPT_E_NOT_FOUND
CommitFlagDelete 是在 commitFlags 自變數中指定,而且找到具有相同通用名稱的範本,但 OID 不相符。
E_ACCESSDEINED
呼叫端沒有儲存或刪除範本的適當許可權。 呼叫端必須具有 Active Directory 中範本容器和範本物件的寫入和刪除許可權。 如果呼叫端具有範本容器和對象的刪除許可權,但沒有 OID 容器和物件的刪除許可權,則會刪除範本,但不會刪除 OID。
E_NOTIMPL
CommitFlagSaveTemplateUseCurrentOIDCommitFlagSaveTemplateOverwrite 是在 commitFlags 自變數中指定。 目前未使用這些值。
HRESULT_FROM_WIN32 (ERROR_NOT_FOUND)
CommitFlagDelete 已在 commitFlags 自變數中指定,但找不到具有相符的一般名稱 (CN) 的範本。
HRESULT_FROM_WIN32 (ERROR_NOT_SUPPORTED)
默認範本不支援 Commit 方法。
OLE_E_BLANK
尚未初始化 IX509CertificateTemplateWritable 物件。

備註

commitFlags 自變數中指定 CommitFlagSaveTemplateGenerateOID 時,除非已建立範本和 OID 容器,否則此方法將不會成功。 這些容器可以透過下列任何方式建立:

  • 在伺服器上安裝企業證書頒發機構單位。
  • 啟動 Certtmpl.msc 嵌入式管理單元。
  • 使用 Certutil.exe -installDefaultTemplates 命令來安裝預設範本。

規格需求

需求
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限桌面應用程式]
目標平台 Windows
標頭 certenroll.h

另請參閱

IX509CertificateTemplateWritable