ICertAdmin2::GetCAProperty 方法 (certadm.h)
GetCAProperty 方法检索证书颁发机构 (CA) 的属性值。 此方法首先在 ICertAdmin 接口中定义。
语法
HRESULT GetCAProperty(
[in] const BSTR strConfig,
[in] LONG PropId,
[in] LONG PropIndex,
[in] LONG PropType,
[in] LONG Flags,
[out] VARIANT *pvarPropertyValue
);
参数
[in] strConfig
表示 CA 的有效配置字符串,格式为 COMPUTERNAME\CANAME,其中 COMPUTERNAME 是证书服务服务器的网络名称,CANAME 是 CA 的公用名,如证书服务设置期间输入。 有关配置字符串名称的信息,请参阅 ICertConfig。
[in] PropId
指定以下属性标识符之一。
值 | 含义 |
---|---|
|
属性的数据类型:Long 指定 CA 是否正在运行高级服务器。 |
|
属性的数据类型:二进制,已编制索引 CA 的完整 或基本证书吊销列表 (CRL) 。 |
|
属性的数据类型:Long,已编制索引 基本 CRL 发布状态。 有关更多详细信息,请参阅“备注”。 |
|
属性的数据类型:二进制,已编制索引 向后交叉证书。 向后交叉证书是从 CA 续订时颁发的证书,该证书本身使用 CA 的新密钥签名。 向后交叉证书具有新 CA 证书的颁发机构密钥标识符和旧 CA 证书的使用者密钥标识符。 仅适用于根 CA。 |
|
属性的数据类型:Long,已编制索引 向后交叉证书是否有效。 仅适用于根 CA。 |
|
属性的数据类型:Long CA 证书的状态。 值可以是:
|
|
属性的数据类型:Long,已编制索引 CA 证书的状态,作为 HRESULT。 |
|
属性的数据类型:Long,已编制索引 CA 证书的版本,作为 DWORD。 高阶字是键索引,低序字是 CA 证书索引。 |
|
属性的数据类型:二进制,已编制索引 向前交叉证书。 转发交叉证书是从 CA 续订到使用 CA 的上一个密钥签名的自身时颁发的证书。 转发交叉证书具有上一个 CA 证书的颁发机构密钥标识符和新 CA 证书的使用者密钥标识符。 仅适用于根 CA。 |
|
属性的数据类型:Long,已编制索引 转发交叉证书是否有效。 仅适用于根 CA。 |
|
属性的数据类型:String CA 的名称。 |
|
属性的数据类型:二进制,已编制索引 CA 签名证书。 |
|
属性的数据类型:二进制,已编制索引 CA 签名证书链。 |
|
属性的数据类型:Long CA 的签名证书数。 |
|
属性的数据类型:二进制,已编制索引 CA 的签名证书 CRL 链。 |
|
属性的数据类型:Long CA 的类型。 这可以是 Certsrv.h) 中定义的以下值 (之一:
|
|
属性的数据类型:二进制,已编制索引 CA 交换证书。 |
|
属性的数据类型:二进制,已编制索引 CA 交换证书链。 |
|
属性的数据类型:Long CA 的交换证书数。 |
|
属性的数据类型:二进制,已编制索引 CA 的交换证书 CRL 链。 |
|
属性的数据类型:字符串,已编制索引 将颁发机构信息访问 URL 指定为客户端请求的 URL 类型。 Windows Server 2003: 不支持此标志。 |
|
属性的数据类型:字符串,已编制索引 将 CRL 分发点 URL 指定为客户端请求的 URL 类型。 Windows Server 2003: 不支持此标志。 |
|
属性的数据类型:Long CA 的 CRL 的状态。 值可以是:
|
|
属性的数据类型:二进制,已编制索引 CA 的增量 CRL。 |
|
属性的数据类型:Long,已编制索引 增量 CRL 发布状态。 有关更多详细信息,请参阅“备注”。 |
|
属性的数据类型:String CA 的 DNS 名称。 |
|
属性的数据类型:Long CA 使用的退出模块数。 |
|
属性的数据类型:String 退出模块的说明。 |
|
属性的数据类型:String 证书服务文件版本。 |
|
属性的数据类型:二进制,已编制索引 CA 的密钥恢复代理 (KRA) 证书。 |
|
属性的数据类型:Long CA 的 KRA 证书数。 |
|
属性的数据类型:Long,已编制索引 KRA 的证书状态。 返回值为下列之一:
|
|
属性的数据类型:Long CA 使用的 KRA 证书数。 |
|
属性的数据类型:String CA 的父 CA 的名称。 |
|
属性的数据类型:String 策略模块的说明。 |
|
属性的数据类型:String 文件随附的产品版本。 |
|
属性的数据类型:Long 指定是否启用角色分离的值。 |
|
属性的数据类型:String CA 的净化名称。 有关已清理的 CA 名称的定义,请参阅 ICertConfig2::GetConfig。 |
|
属性的数据类型:String CA 的净化短名称。 有关已清理的 CA 短名称的定义,请参阅 ICertConfig2::GetConfig。 |
|
属性的数据类型:String 共享文件夹目录的名称。 |
|
属性的数据类型:String CA 支持的模板列表。 |
[in] PropIndex
如果 为 PropId 参数编制索引,则为检索属性值时要使用的从零开始的索引。 如果未为 PropId 编制索引,则忽略此值。
[in] PropType
指定属性的类型,在 PropId 表的“含义”列中指示。 类型可以是以下类型之一。
值 | 含义 |
---|---|
|
有符号的长数据 |
|
保留 (供将来使用的日期/时间) |
|
Binary data |
|
Unicode 字符串数据 |
[in] Flags
以下标志可用于指定返回的属性值的格式:这些标志仅对二进制数据 ((如证书、证书链或 证书吊销列表 )) 有意义,否则将被忽略。
[out] pvarPropertyValue
指向接收请求的属性值的缓冲区的指针。 调用方负责通过调用 VariantClear 释放此资源。
返回值
C++
返回值为 HRESULT。 值 S_OK 表示该方法成功。VB
请求的属性值。注解
当属性标识符CR_PROP_BASECRLPUBLISHSTATUS或CR_PROP_DELTACRLPUBLISHSTATUS时,将返回以下值。 这些值可以组合使用。
值 | 说明 |
---|---|
CPF_BADURL_ERROR | URL 无效。 |
CPF_BASE | 已发布基本 CRL。 |
CPF_CASTORE_ERROR | CA 存储错误阻止发布。 |
CPF_COMPLETE | 已发布完整的 CRL。 |
CPF_DELTA | 已发布增量 CRL。 |
CPF_FILE_ERROR | 文件错误阻止发布。 |
CPF_FTP_ERROR | FTP 错误阻止发布。 |
CPF_HTTP_ERROR | HTTP 错误阻止发布。 |
CPF_LDAP_ERROR | LDAP 错误阻止发布。 |
CPF_MANUAL | 已手动发布 CRL。 |
CPF_SHADOW | 已发布空增量 CRL,以及新的 BASE CRL。 |
CPF_SIGNATURE_ERROR | 签名错误阻止发布。 |
有关检索 CRL 的示例,请参阅 检索证书吊销列表。
示例
以下示例演示如何检索 CA 的签名证书。 该示例假定 ICertAdmin2 接口指针有效。
BSTR bstrCA = NULL;
VARIANT var1;
HRESULT hr;
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
printf("Failed to allocate memory for bstrCA\n");
exit(1);
}
VariantInit(&var1);
// Retrieve the CA signature certificate at index 0.
hr = pAdmin2->GetCAProperty(bstrCA,
CR_PROP_CASIGCERT,
0,
PROPTYPE_BINARY,
CV_OUT_BASE64HEADER,
&var1);
if (FAILED(hr))
{
printf("Failed GetCAProperty\n");
SysFreeString(bstrCA);
exit(1); // Or other error action.
}
// Use the property as needed.
// ...
// Clear the variant when finished.
VariantClear(&var1);
SysFreeString(bstrCA);
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | certadm.h (包括 Certsrv.h) |
Library | Certidl.lib |
DLL | Certadm.dll |