iCertAdmin::SetRequestAttributes 方法 (certadm.h)
SetRequestAttributes 方法设置指定的挂起证书请求中的属性。 此方法首先在 ICertAdmin 接口中定义。
要使此方法成功,证书请求必须处于挂起状态。
语法
HRESULT SetRequestAttributes(
[in] const BSTR strConfig,
[in] LONG RequestId,
[in] const BSTR strAttributes
);
参数
[in] strConfig
表示 证书颁发机构 (CA) 服务器的有效配置字符串,格式为 COMPUTERNAME\CANAME,其中 COMPUTERNAME 是证书服务服务器的网络名称,CANAME 是证书颁发机构的公用名,如证书服务设置过程中输入的那样。 有关配置字符串名称的信息,请参阅 ICertConfig。
[in] RequestId
指定接收 属性的请求的 ID。
[in] strAttributes
指定属性数据。 每个属性都是一个名称/值字符串对。 冒号字符分隔名称和值,换行符分隔多个名称/值对,例如:
C++ | AttributeName1:AttributeValue1\nAttributeName2:AttributeValue2 |
VB | AttributeName1:AttributeValue1 & vbNewLine & AttributeName2:AttributeValue2 |
当证书服务分析属性名称时,它会忽略空格、连字符 (减号) 和大小写。 例如, AttributeName1、 Attribute Name1 和 Attribute-name1 都是等效的。 对于属性值,证书服务会忽略前导空格和尾随空格。
返回值
VB
如果该方法成功,该方法将返回S_OK。如果方法失败,它将返回指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 常见 HRESULT 值。
注解
通过调用 SetRequestAttributes添加或更新的属性不会更改与证书请求关联的初始未分析属性字符串。 在 (ICertRequest::Submit 方法请求证书后,证书请求的未分析属性字符串不可更改,允许在请求证书时) 指定属性。
可以使用证书颁发机构 MMC 管理单元显示初始未分析的请求属性字符串。
查看分析的属性时,还会看到由于调用 SetRequestAttributes 而发生的任何更改。
查看分析的属性
- 打开证书颁发机构 MMC 管理单元。
- 打开 “挂起的请求” 文件夹。
- 右键单击请求,指向“ 所有任务”,然后单击“ 查看属性/扩展”。
管理任务使用 DCOM。 调用早期版本的 Certadm.h 中定义的此接口方法的代码将在基于 Windows 的服务器上运行,前提是客户端和服务器都运行相同的 Windows 操作系统。
示例
BSTR bstrAttribs = NULL;
BSTR bstrCA = NULL;
long nReqID; // request ID
// Specify the attributes.
// For example, "AttName1:AttValue1\nAttName2:AttValue2".
bstrAttribs = SysAllocString(L"<ATTRIBUTESHERE>");
if (NULL == bstrAttribs)
{
printf("Memory allocation failed for bstrAttribs.\n");
goto error;
}
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
printf("Memory allocation failed for bstrCA.\n");
goto error;
}
// Request ID to receive the attributes.
nReqID = <REQUESTIDHERE>;
// Add these attributes to the certificate.
// pCertAdmin is a previously instantiated
// ICertAdmin object pointer.
hr = pCertAdmin->SetRequestAttributes( bstrCA,
nReqID,
bstrAttribs );
if (FAILED(hr))
printf("Failed SetRequestAttributes [%x]\n", hr);
else
printf("SetRequestAttributes succeeded\n");
// Done processing.
error:
if (bstrAttribs)
SysFreeString(bstrAttribs);
if (bstrCA)
SysFreeString(bstrCA);
// Free other resources.
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | certadm.h (包括 Certsrv.h) |
Library | Certidl.lib |
DLL | Certadm.dll |