ICertAdmin::D enyRequest 方法 (certadm.h)
DenyRequest 方法拒绝挂起的指定证书请求。 此方法首先在 ICertAdmin 接口中定义。
若要使此方法成功,证书请求必须处于挂起状态。
语法
HRESULT DenyRequest(
[in] const BSTR strConfig,
[in] LONG RequestId
);
参数
[in] strConfig
表示 证书颁发机构 (CA) 的有效配置字符串,格式为 COMPUTERNAME\CANAME,其中 COMPUTERNAME 是证书服务服务器的网络名称,CANAME 是在证书服务设置过程中输入的证书颁发机构的公用名称。 有关配置字符串的信息,请参阅 ICertConfig。
重要提示 更改配置字符串时,DenyRequest 不会清除内部缓存。 更改 CA 的配置字符串时,必须实例化新的 ICertAdmin 对象,并使用新的配置字符串再次调用此方法。
[in] RequestId
指定要拒绝的挂起请求的 ID。
返回值
无
备注
管理任务使用 DCOM。 调用 Certadm.h 早期版本中定义的此接口方法的代码将在基于 Windows 的服务器上运行,前提是客户端和服务器都运行相同的 Windows 操作系统。
示例
以下示例声明必要的变量、初始化 COM 并创建 CertAdmin 类的实例。 然后,它会调用 DenyRequest 并将成功或失败输出到屏幕。 最后,它释放资源。
// Pointer to an interface object.
ICertAdmin * pCertAdmin = NULL;
BSTR bstrCA = NULL; // variable for machine\CAName
long nReqID; // variable for Request ID
HRESULT hr;
// Initialize COM.
hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (FAILED(hr))
{
printf("Failed CoInitializeEx [%x]\n", hr);
goto error;
}
// Create the CertAdmin object
// and get a pointer to its ICertAdmin interface.
hr = CoCreateInstance( CLSID_CCertAdmin,
NULL,
CLSCTX_INPROC_SERVER,
IID_ICertAdmin,
(void **)&pCertAdmin);
if (FAILED(hr))
{
printf("Failed CoCreateInstance pCertAdmin [%x]\n", hr);
goto error;
}
// Note the use of two '\' in C++ to produce one '\'.
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
printf("Failed to allocate memory for bstrCA\n");
goto error;
}
// nReqID is RequestID to be denied.
nReqID = <REQUESTIDHERE>;
// Deny the request.
hr = pCertAdmin->DenyRequest( bstrCA, nReqID );
if (FAILED(hr))
{
printf("Failed DenyRequest %ws %d [%x]\n",
bstrCA, nReqID, hr);
goto error;
}
else
printf("Denied request %ws %d\n",
bstrCA, nReqID );
// Done processing.
error:
// Free BSTR values.
if (NULL != bstrCA)
SysFreeString(bstrCA);
// Clean up object resources.
if (NULL != pCertAdmin)
pCertAdmin->Release();
// Free COM resources.
CoUninitialize();
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | certadm.h (包括 Certsrv.h) |
Library | Certidl.lib |
DLL | Certadm.dll |
另请参阅
ICertAdmin2