ICertServerPolicy::SetCertificateExtension 方法 (certif.h)
SetCertificateExtension 方法向证书添加新扩展。
语法
HRESULT SetCertificateExtension(
[in] const BSTR strExtensionName,
[in] LONG Type,
[in] LONG ExtFlags,
[in] const VARIANT *pvarValue
);
参数
[in] strExtensionName
指定要设置的扩展 (OID) 的对象标识符 。 字符串的长度必须为 31 个或更少的非空字符。
[in] Type
指定要设置的扩展的类型。 Type 参数必须与 VARIANT 结构的 vt 字段中设置的 pvarValue 数据类型一致。 Type 参数可以设置为以下类型之一。
[in] ExtFlags
指定要设置的扩展的标志。 如果未设置任何标志,请使用零值,或者使用以下标志值之一。 可以使用 OR 运算符将这些标志联接在一起,还可以将 OR 运算符与策略专用扩展标志 (EXTENSION_POLICY_MASK字段) 的高 8 位来联接它们。
注意 当 ExtFlags 设置为 EXTENSION_DISABLE_FLAG 时,将在服务器日志中禁用该扩展,并且不会添加到证书中。
值 | 含义 |
---|---|
|
这是一个关键扩展。 |
|
不会使用扩展。 |
[in] pvarValue
指定与扩展关联的值。 请注意,值的 VARIANT 类型必须与 Type 参数一致,如下表所示。
值 | 含义 |
---|---|
|
VT_I4 |
|
VT_DATE |
|
VT_BSTR |
|
VT_BSTR |
返回值
VB
如果方法成功,该方法将返回S_OK。如果方法失败,它将返回一个 指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
注解
使用扩展可包含证书的其他信息,例如补充使用者或使用情况信息。 有关详细信息,请参阅 扩展处理程序。
从 ICertPolicy2::VerifyRequest 方法的实现中调用 SetCertificateExtension 方法。 在调用 SetCertificateExtension 方法之前,必须调用 ICertServerPolicy::SetContext 方法。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | certif.h (包括 Certsrv.h) |
Library | Certidl.lib |
DLL | Certcli.dll |