ICertServerPolicy::GetCertificateExtension 方法 (certif.h)
GetCertificateExtension 方法检索特定的证书扩展。
语法
HRESULT GetCertificateExtension(
[in] const BSTR strExtensionName,
[in] LONG Type,
[out] VARIANT *pvarValue
);
参数
[in] strExtensionName
包含扩展名的字符串。
[in] Type
指定扩展的类型。 类型可以是以下值之一。
值 | 含义 |
---|---|
|
有符号的长数据 |
|
日期/时间 |
|
扩展值按原样检索,并在必要时进行 ASN.1 编码。 |
|
扩展值为 ASN.1,编码为 IA5 字符串。 |
[out] pvarValue
指向接收请求的扩展值的 VARIANT 的指针。
返回值
C++
如果该方法成功,该方法将返回S_OK,并且 pvarValue 参数包含扩展值。如果方法失败,它将返回指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 常见 HRESULT 值。
VB
返回值是请求的扩展值。注解
在调用此方法之前,必须调用 SetContext 方法。 对 SetContext 的调用指定将哪个请求用作当前上下文。
证书扩展不同于证书属性。 属性是附加到请求的泛型数据。 其中一些属性被编码为证书 (例如: BeginDate) ,而其他属性仅用于标记队列和日志中的请求。 未禁用的扩展将编码到证书中。 扩展始终使用 对象标识符进行标记,并且始终具有关键/非关键标志。
示例
VARIANT varExt;
HRESULT hr;
VariantInit(&varExt);
// Get the Extension value.
// bstrExtName is BSTR assigned by EnumerateExtensions.
// pCertServerPolicy has been used to call SetContext previously.
hr = pCertServerPolicy->GetCertificateExtension(bstrExtName,
PROPTYPE_BINARY,
&varExt);
if (FAILED(hr))
{
printf("Failed GetCertificateExtension [%x]\n", hr);
goto error;
}
// Successful call; use the value in varExt as needed.
// ...
// When done, clear the Variant
VariantClear(&varExt);
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | certif.h (包括 Certsrv.h) |
Library | Certidl.lib |
DLL | Certcli.dll |