ICertAdmin::SetCertificateExtension 方法 (certadm.h)

SetCertificateExtension 方法向为响应证书请求而颁发的证书添加新扩展。 此方法首先由 ICertAdmin 接口定义。

若要使此方法成功,证书请求必须处于挂起状态。

语法

HRESULT SetCertificateExtension(
  [in] const BSTR    strConfig,
  [in] LONG          RequestId,
  [in] const BSTR    strExtensionName,
  [in] LONG          Type,
  [in] LONG          Flags,
  [in] const VARIANT *pvarValue
);

参数

[in] strConfig

表示 证书颁发机构 (CA) 服务器的有效配置字符串,格式为 COMPUTERNAME\CANAME,其中 COMPUTERNAME 是证书服务服务器的网络名称,CANAME 是证书颁发机构的公用名称,如证书服务设置过程中输入。 有关配置字符串名称的信息,请参阅 ICertConfig

重要提示 当配置字符串发生更改时,SetCertificateExtension 不会清除内部缓存。 更改 CA 的配置字符串时,必须实例化新的 ICertAdmin 对象,并使用新的配置字符串再次调用此方法。
 

[in] RequestId

指定证书请求的 ID。

[in] strExtensionName

指定要设置的扩展 (OID) 的对象标识符 。 字符串的长度必须为 31 个或更少的非 NULL 字符。

[in] Type

指定要设置的扩展的类型。 Type 参数必须与 pvarValue 参数的数据类型一致。 此数据类型在 VARIANT 结构的 vt 字段中设置。

此参数的取值可为下列值之一:

含义
PROPTYPE_LONG
有符号的长数据
PROPTYPE_DATE
日期/时间
PROPTYPE_BINARY
扩展值按原样设置,并假定为 ASN.1 编码(如有必要)。
PROPTYPE_STRING
扩展值将 ASN.1 编码为 IA5 字符串,然后再将其放入新证书中。
注意 仅当希望 URL 自动编码为 IA5 字符串时,才应对包含单个 URL 的扩展值使用 PROPTYPE_STRING。 否则,请自行将 URL 编码为 IA5 字符串,并将编码值作为 PROPTYPE_BINARY传递。
 

[in] Flags

指定要设置的扩展的标志。 如果未设置标志,请使用零值。 可以将这些标志与按位 OR 操作和策略专用扩展标志结合使用, () EXTENSION_POLICY_MASK字段的高 8 位。

注意Flags 参数设置为 EXTENSION_DISABLE_FLAG 时,将在服务器日志中禁用该扩展,并且不会添加到证书中。
 
Value 含义
EXTENSION_CRITICAL_FLAG
这是一个关键扩展。
EXTENSION_DISABLE_FLAG
不会使用该扩展。

[in] pvarValue

指定与扩展关联的值。

返回值

VB

如果方法成功,该方法将返回S_OK。

如果方法失败,它将返回一个 指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

注解

管理任务使用 DCOM。 调用 Certadm.h 早期版本中定义的此接口方法的代码将在基于 Windows 的服务器上运行,前提是客户端和服务器都运行相同的 Windows 操作系统。

要求

   
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 certadm.h (包括 Certsrv.h)
Library Certidl.lib
DLL Certadm.dll

另请参阅

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig