Поделиться через


Метод IX509CertificateTemplateWritable::Commit (certenroll.h)

Метод Commit удаляет шаблон из Active Directory или сохраняет его в Active Directory.

Синтаксис

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

Параметры

[in] commitFlags

Значение перечисления CommitTemplateFlags , указывающее способ сохранения или удаления шаблона. Это должно быть одно из следующих значений.

Значение Значение
CommitFlagSaveTemplateGenerateOID
Сохраните шаблон и создайте для него идентификатор объекта.
CommitFlagSaveTemplateUseCurrentOID
Не используется.
CommitFlagSaveTemplateOverwrite
Не используется.
CommitFlagDeleteTemplate
Удалите шаблон.

[in] strServerContext

Переменная BSTR , содержащая DNS-имя сервера Active Directory, к которому будут применены изменения. Если это значение равно NULL, изменения будут применены к контроллеру домена по умолчанию.

Возвращаемое значение

Если функция завершается успешно, функция возвращает S_OK.

Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.

Код возврата Описание
CRYPT_E_EXISTS
CommitFlagSaveTemplateGenerateOID был указан в аргументе commitFlags , но шаблон с совпадающим общим именем или идентификатором соответствующего объекта (OID) уже существует.
CRYPT_E_NOT_FOUND
CommitFlagDelete был указан в аргументе commitFlags , и был найден шаблон с тем же общим именем, но OID не совпадает.
E_ACCESSDEINED
Вызывающий объект не имеет соответствующего разрешения на сохранение или удаление шаблона. Вызывающий объект должен иметь разрешение на запись и удаление для контейнера шаблона и объектов шаблона в Active Directory. Если вызывающий объект имеет разрешение на удаление для контейнера шаблона и объектов, но не имеет разрешения на удаление для контейнера и объектов OID, шаблон будет удален, но OID не будет.
E_NOTIMPL
В аргументе commitFlags был указан параметр CommitFlagSaveTemplateOverwriteUseCurrentOID или CommitFlagSaveTemplateOverwrite. Эти значения в настоящее время не используются.
HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
CommitFlagDelete был указан в аргументе commitFlags , но не удалось найти шаблон с совпадающим общим именем (CN).
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
Метод Commit не поддерживается для шаблонов по умолчанию.
OLE_E_BLANK
Объект IX509CertificateTemplateWritable не инициализирован.

Комментарии

Если CommitFlagSaveTemplateGenerateOID указан в аргументе commitFlags , этот метод не будет успешным, если только контейнеры шаблонов и OID уже не созданы. Эти контейнеры можно создать любым из следующих способов:

  • Установка центра сертификации предприятия на сервере.
  • Запуск оснастки Certtmpl.msc.
  • Использование командыCertutil.exe -installDefaultTemplates для установки шаблонов по умолчанию.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header certenroll.h

См. также раздел

IX509CertificateTemplateWritable