ICertServerExit::GetCertificateProperty 方法 (certif.h)
GetCertificateProperty 方法从证书返回命名属性。
语法
HRESULT GetCertificateProperty(
[in] const BSTR strPropertyName,
[in] LONG PropertyType,
[out] VARIANT *pvarPropertyValue
);
参数
[in] strPropertyName
指定要检索的命名属性。 有一组称为名称属性的常用证书属性,这些 属性始终有效,可以通过调用此方法进行检索。 有关这些属性的信息,请参阅 名称属性。 可检索的其他属性包括证书属性。
以下属性对证书是唯一的,可由 GetCertificateProperty 读取。
Value | 含义 |
---|---|
|
证书开始日期 |
|
证书过期日期 |
|
OID) (主题键算法对象标识符 |
|
原始证书字节数 |
|
主题键 |
|
主题键算法参数 |
|
内部请求 ID |
|
证书序列号 |
只有在策略模块完成处理请求并颁发证书后, GetCertificateProperty 才能访问证书的 DistinguishedName、RawName 和 SerialNumber 属性。
以下属性适用于 证书颁发机构。 上下文必须为零才能读取这些属性中的任何一个。 最初创建 ICertServerExit 对象时,上下文设置为零。 还可以通过调用 SetContext 方法将其设置为零。
Value | 含义 |
---|---|
|
证书颁发机构的类型。 这可以是 Certsrv.h) 中定义的以下值 (之一: ENUM_ENTERPRISE_ROOTCA ENUM_ENTERPRISE_SUBCA ENUM_STANDALONE_ROOTCA ENUM_STANDALONE_SUBCA |
|
CA 证书数。 此值将加上 CA 续订的次数的 1。 有关续订的信息,请参阅 证书颁发机构续订。 |
|
CA 证书 状态。 这可以是以下值之一:
|
|
CA 证书的后缀。 后缀是索引为零的 CA 证书的空字符串;否则,后缀以“ (nn) ”的形式 (,其中 nn 是证书索引,) 应用于指向文件或目录服务对象中存储的 CA 证书的所有 URL。 对于非 LDAP URL,后缀通常显示在“.crt”文本之前。 对于 LDAP URL,后缀通常追加到完整可分辨名称中的第一个“CN=”。
此属性名称可以追加“.#”,其中 # 表示 CA 证书索引 (,或者,对于 CRLSuffix 属性,CRL 索引) 。 有关证书和 CRL 索引的信息,请参阅 证书颁发机构续订。 |
|
证书吊销列表 (CRL) 索引。 将证书索引追加到此属性名称后,可以检索 CRL 索引。 CRL 索引不一定与证书索引匹配。 有关详细信息,请参阅 认证。
此属性名称可以追加“.#”,其中 # 表示 CA 证书索引 (,或者,对于 CRLSuffix 属性,CRL 索引) 。 有关证书和 CRL 索引的信息,请参阅 证书颁发机构续订。 |
|
CRL 状态。 这可以是以下值之一:
|
|
CA CRL 的后缀。 后缀是索引为零的 CRL 的空字符串;否则,后缀以“ (nn) ”的形式 (,其中 nn 是 CRL 索引,) 应用于指向文件或目录服务对象中存储的 CRL 的所有 URL。 对于非 LDAP URL,后缀通常显示在“.crl”文本之前。 对于 LDAP URL,后缀通常追加到完整可分辨名称中的第一个“CN=”。
此属性名称可以追加“.#”,其中 # 表示 CA 证书索引 (,或者,对于 CRLSuffix 属性,CRL 索引) 。 有关证书和 CRL 索引的信息,请参阅 证书颁发机构续订。 |
|
指示 CA 是否使用目录服务。 这可以是以下值之一:
|
|
托管 CA 的服务器 DNS 名称。 |
|
可供模块使用的注册表位置。 |
|
CA 证书。
此属性名称可以追加“.#”,其中 # 表示 CA 证书索引 (,或者,对于 CRLSuffix 属性,CRL 索引) 。 有关证书和 CRL 索引的信息,请参阅 证书颁发机构续订。 |
|
CA 的 证书吊销列表 (CRL) 。
此属性名称可以追加“.#”,其中 # 表示 CA 证书索引 (,或者,对于 CRLSuffix 属性,CRL 索引) 。 有关证书和 CRL 索引的信息,请参阅 证书颁发机构续订。 |
|
指示请求者是否有权请求证书。 这可以是以下值之一:
|
|
CA 的已清理名称。 有关已清理的 CA 名称的信息,请参阅 ICertConfig::GetConfig。 |
|
CA 的清理名称 ,缩短并包含 哈希 值,以确保唯一性。 |
[in] PropertyType
指定属性类型。 类型可以是以下类型之一。
Value | 含义 |
---|---|
|
有符号的长数据 |
|
日期/时间 |
|
Binary data |
|
Unicode 字符串数据 |
[out] pvarPropertyValue
指向将包含属性值的 VARIANT 的指针。 返回的值编码为 BSTR。 使用 SysStringByteLen 函数检索 BSTR 的长度。 二进制 BLOB 存储为可辨别编码规则编码的 X.509 证书。
返回值
C++
如果方法成功,该方法将返回S_OK。如果方法失败,它将返回一个 指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
VB
返回值是请求的属性值。注解
在使用此方法之前,必须调用 ICertServerExit::SetContext 。
示例
BSTR bstrPropName = NULL;
VARIANT varProp;
VariantInit(&varProp);
// Set the property name to RequestID.
bstrPropName = SysAllocString(L"RequestID");
// Retrieve the certificate property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateProperty(bstrPropName,
PROPTYPE_LONG,
&varProp );
if (FAILED(hr))
{
printf("Failed GetCertificateProperty [%x]\n", hr);
goto error;
}
else
{
// Successfully retrieved property; use varProp as needed.
// ...
}
// Done processing.
if (NULL != bstrPropName)
SysFreeString(bstrPropName);
VariantClear(&varProp);
要求
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | certif.h (包括 Certsrv.h) |
Library | Certidl.lib |
DLL | Certcli.dll |