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
指定要拒絕之擱置要求的標識碼。
傳回值
無
備註
系統管理工作使用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) |
程式庫 | Certidl.lib |
Dll | Certadm.dll |
另請參閱
ICertAdmin2