ICertServerExit::GetCertificateExtension 方法 (certif.h)
GetCertificateExtension 方法获取指定的证书扩展。
请注意,证书扩展不同于证书属性。 属性是附加到请求对象的泛型数据。 其中一些属性被编码为证书 (示例: BeginDate) ,而其他属性仅用于标记队列和日志中的请求。 未禁用的扩展将编码到证书中。 扩展始终使用 对象标识符 进行标记,并且始终具有关键/非关键标志。
语法
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 设置为包含扩展值的 VARIANT 。如果方法失败,它将返回一个 指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
VB
返回值是请求的扩展值。备注
在使用此方法之前,必须调用 ICertServerExit::SetContext 。
示例
VARIANT varExt;
HRESULT hr;
VariantInit(&varExt);
// Get the Extension value
// bstrExtName is BSTR assigned by EnumerateExtensions.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->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 |