IX509CertificateTemplateWritable::Commit 方法 (certenroll.h)
Commit 方法从 中删除模板或将其保存到 Active Directory。
语法
HRESULT Commit(
[in] CommitTemplateFlags commitFlags,
[in] BSTR strServerContext
);
参数
[in] commitFlags
一个 CommitTemplateFlags 枚举值,该值指定如何保存或删除模板。 这必须是以下值之一。
值 | 含义 |
---|---|
|
保存模板并为其创建对象标识符。 |
|
未使用。 |
|
未使用。 |
|
删除模板。 |
[in] strServerContext
一个 BSTR 变量,其中包含将向其应用更改的 Active Directory 服务器的 DNS 名称。 如果此值为 NULL,则更改将应用于默认域控制器。
返回值
如果函数成功,该函数将返回 S_OK。
如果函数失败,它将返回指示错误的 HRESULT 值。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 常见 HRESULT 值。
返回代码 | 说明 |
---|---|
|
CommitFlagSaveTemplateGenerateOID 已在 commitFlags 参数中指定,但已存在具有匹配公用名或匹配对象标识符的模板 (OID) 。 |
|
CommitFlagDelete 已在 commitFlags 参数中指定,并且找到了具有相同公用名的模板,但 OID 不匹配。 |
|
调用方没有保存或删除模板的相应权限。 调用方必须对 Active Directory 中的模板容器和模板对象具有写入和删除权限。 如果调用方对模板容器和对象具有删除权限,但对 OID 容器和对象没有删除权限,则模板将被删除,但 OID 不会删除。 |
|
CommitFlagSaveTemplateUseCurrentOID 或 CommitFlagSaveTemplateOverwrite 已在 commitFlags 参数中指定。 当前未使用这些值。 |
|
commitFlagDelete 已在 commitFlags 参数中指定,但找不到具有匹配公用名 (CN) 的模板。 |
|
默认模板不支持 Commit 方法。 |
|
IX509CertificateTemplateWritable 对象尚未初始化。 |
注解
在 commitFlags 参数中指定 CommitFlagSaveTemplateGenerateOID 时,除非已创建模板和 OID 容器,否则此方法不会成功。 可以通过以下任一方式创建这些容器:
- 在服务器上安装企业证书颁发机构。
- 启动 Certtmpl.msc 管理单元。
- 使用 Certutil.exe -installDefaultTemplates 命令安装默认模板。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | certenroll.h |