Share via


IX509CertificateTemplateWritable::Commit 메서드(certenroll.h)

Commit 메서드는 템플릿을 에서 삭제하거나 Active Directory에 저장합니다.

구문

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

매개 변수

[in] commitFlags

템플릿을 저장하거나 삭제하는 방법을 지정하는 CommitTemplateFlags 열거형 값입니다. 다음 값 중 하나여야 합니다.

의미
CommitFlagSaveTemplateGenerateOID
템플릿을 저장하고 해당 템플릿에 대한 개체 식별자를 만듭니다.
CommitFlagSaveTemplateUseCurrentOID
사용되지 않습니다.
CommitFlagSaveTemplateOverwrite
사용되지 않습니다.
CommitFlagDeleteTemplate
템플릿을 삭제합니다.

[in] strServerContext

변경 내용이 적용될 Active Directory 서버의 DNS 이름을 포함하는 BSTR 변수입니다. 이 값이 NULL이면 변경 내용이 기본 도메인 컨트롤러에 적용됩니다.

반환 값

함수가 성공하면 함수는 S_OK 반환합니다.

함수가 실패하면 오류를 나타내는 HRESULT 값을 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다. 일반적인 오류 코드 목록은 일반적인 HRESULT 값을 참조하세요.

반환 코드 설명
CRYPT_E_EXISTS
CommitFlagSaveTemplateGenerateOIDcommitFlags 인수에 지정되었지만 공통 이름 또는 일치하는 OID(개체 식별자)가 있는 템플릿이 이미 있습니다.
CRYPT_E_NOT_FOUND
CommitFlagDeletecommitFlags 인수에 지정되었고 공통 이름이 같은 템플릿을 찾았지만 OID가 일치하지 않았습니다.
E_ACCESSDEINED
호출자에게 템플릿을 저장하거나 삭제할 수 있는 적절한 권한이 없습니다. 호출자에게 Active Directory의 템플릿 컨테이너 및 템플릿 개체에 대한 쓰기 및 삭제 권한이 있어야 합니다. 호출자에게 템플릿 컨테이너 및 개체에 대한 삭제 권한이 있지만 OID 컨테이너 및 개체에 대한 삭제 권한이 없는 경우 템플릿은 삭제되지만 OID는 삭제되지 않습니다.
E_NOTIMPL
CommitFlagSaveTemplateUseCurrentOID 또는 CommitFlagSaveTemplateOverwrite 중 하나가 commitFlags 인수에 지정되었습니다. 이러한 값은 현재 사용되지 않습니다.
HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
CommitFlagDeletecommitFlags 인수에 지정되었지만 CN(Common Name)과 일치하는 템플릿을 찾을 수 없습니다.
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
Commit 메서드는 기본 템플릿에 대해 지원되지 않습니다.
OLE_E_BLANK
IX509CertificateTemplateWritable 개체가 초기화되지 않았습니다.

설명

CommitFlagSaveTemplateGenerateOIDcommitFlags 인수에 지정되면 템플릿 및 OID 컨테이너가 이미 만들어지지 않는 한 이 메서드는 성공하지 않습니다. 이러한 컨테이너는 다음과 같은 방법으로 만들 수 있습니다.

  • 서버에 엔터프라이즈 인증 기관 설치
  • Certtmpl.msc 스냅인을 시작합니다.
  • Certutil.exe -installDefaultTemplates 명령을 사용하여 기본 템플릿을 설치합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 certenroll.h

추가 정보

IX509CertificateTemplateWritable