ICertAdmin::IsValidCertificate 方法 (certadm.h)
IsValidCertificate 方法會向證書頒發機構單位驗證憑證, (CA) 密鑰,並檢查憑證是否已撤銷。 這個方法最初是在 ICertAdmin 介面中定義。
語法
HRESULT IsValidCertificate(
[in] const BSTR strConfig,
[in] const BSTR strSerialNumber,
[out, retval] LONG *pDisposition
);
參數
[in] strConfig
代表 CA 的有效組態字串,格式為 COMPUTERNAME\CANAME,其中 COMPUTERNAME 是證書服務伺服器的網路名稱,CANAME 是證書頒發機構單位的通用名稱,如憑證服務設定期間所輸入。 如需設定字串名稱的相關信息,請參閱 ICertConfig。
重要IsValidCertificate 不會在設定字串變更時清除內部快取。 當您變更 CA 的組態字串時,必須具現化新的 ICertAdmin 物件,並使用新的組態字串再次呼叫此方法。
[in] strSerialNumber
指定要檢閱之憑證的序號。 字串必須將序號指定為偶數的十六進位數位。 如有必要,零可以加上數位的前置詞,以產生偶數位數。 不能使用一個以上的前置零。
[out, retval] pDisposition
接收處置值的 LONG 指標。
傳回值
C++
如果方法成功,且 pDisposition 參數設定為下列其中一個值,則方法會傳回S_OK。如果方法失敗,它會傳回指出錯誤的 HRESULT 值。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值。
VB
傳回值會指定憑證的處置。 這個值是下列其中一個值。 (這些值定義於 Certadm.h.)傳回碼 | Description |
---|---|
|
未完成呼叫。 |
|
呼叫失敗。 |
|
憑證已撤銷。 |
|
憑證仍然有效。 |
|
從未發行憑證。 |
|
憑證擱置中。 |
備註
這個方法只會判斷是否已發行憑證且目前未撤銷;它不會檢查目前的時間和日期是否在憑證有效期間內, (NotBefore 和 NotAfter 憑證屬性) 。 使用此方法的應用程式也負責檢查憑證到期。
系統管理工作使用DCOM。 呼叫此介面方法的程式代碼,如舊版 Certadm.h 中所定義,只要客戶端和伺服器都執行相同的 Windows 作業系統,就會在 Windows 伺服器上執行。
範例
BSTR bstrCA = NULL; // Machine\CAName
BSTR bstrSerial = NULL; // Contains the certificate
// serial number
long nDisp; // Contains the certificate
// disposition
HRESULT hr;
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
bstrSerial = SysAllocString(L"<SERIALNUMBERHERE>");
if (NULL == bstrCA || NULL == bstrSerial)
{
printf("Memory allocation failed\n");
goto error;
}
// Determine whether the certificate is valid.
// pCertAdmin is a previously instantiated ICertAdmin
// object pointer.
hr = pCertAdmin->IsValidCertificate(bstrCA, bstrSerial, &nDisp);
if (FAILED(hr))
{
printf("Failed IsValidCertificate [%x]\n", hr);
goto error;
}
// Use nDisp as needed.
// Done processing.
error:
// Free BSTR values.
if (NULL != bstrCA)
SysFreeString(bstrCA);
if (NULL != bstrSerial)
SysFreeString(bstrSerial);
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 都不支援 |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | certadm.h (包含 Certsrv.h) |
程式庫 | Certidl.lib |
Dll | Certadm.dll |