ICertRequest::RetrievePending 方法 (certcli.h)
RetrievePending 方法从先前可能已返回CR_DISP_INCOMPLETE或CR_DISP_UNDER_SUBMISSION的早期请求中检索证书的处置状态。
如果生成的处置状态为CR_DISP_ISSUED,可以通过调用 ICertRequest3::GetCertificate 来检索颁发的证书。 如果返回除 CR_DISP_ISSUED 以外的处置,请调用 ICertRequest3::GetLastStatus、 ICertRequest3::GetDispositionMessage 或这两种方法获取详细信息。
语法
HRESULT RetrievePending(
[in] LONG RequestId,
[in] const BSTR strConfig,
[out, retval] LONG *pDisposition
);
参数
[in] RequestId
以前返回的请求的 ID CR_DISP_INCOMPLETE 或 CR_DISP_UNDER_SUBMISSION。
[in] strConfig
表示证书服务服务器的有效配置字符串。 字符串可以是注册服务器的 HTTPS URL,也可以采用 ComputerName\CAName 格式,其中 ComputerName 是服务器的网络名称, CAName 是 证书颁发机构的公用名称,如证书服务设置过程中输入的。 有关配置字符串名称的信息,请参阅 ICertConfig。
Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支持将 HTTPS URL 作为输入。
[out, retval] pDisposition
指向请求处置值的指针。
返回值
C++
如果方法成功,该方法将返回S_OK。成功完成此函数后,*pDisposition 设置为下表中的值之一。
如果方法失败,它将返回一个 指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
VB
返回值指定请求的处置。 处置是以下值之一。返回代码 | 说明 |
---|---|
|
请求未完成 |
|
申请失败。 |
|
已拒绝请求 |
|
证书颁发日期 |
|
单独颁发的证书 |
|
在提交下的请求 |
注解
成功调用此方法会生成EXITEVENT_CERTRETRIEVEPENDING事件。 如果退出模块在调用 ICertExit3:: Initialize 时指定了此事件,则活动退出模块将通过调用 ICertExit3::Notify) 接收此事件的通知 (。
示例
BSTR bstrCA = NULL;
long nReqID, nDisp;
// In this example, the request ID is hard-coded.
nReqID = 1234;
// Note use of two '\' in C++ to produce one '\'.
bstrCA = SysAllocString(L"server01\\myCAName");
// pCertRequest is previously instantiated ICertRequest
// object pointer. Retrieve the status for the specified request.
hr = pCertRequest->RetrievePending( nReqID, bstrCA, &nDisp );
if (FAILED(hr))
{
printf("Failed RetrievePending [%x]\n", hr);
goto error;
}
else
{
// Use the disposition value as needed...
}
// Free BSTR resource.
if ( NULL != bstrCA )
SysFreeString( bstrCA );
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | certcli.h (包括 Certsrv.h) |
Library | Certidl.lib |
DLL | Certcli.dll |