Share via


ICertAdmin::GetRevocationReason 方法 (certadm.h)

GetRevocationReason方法會傳回撤銷憑證的原因。 此方法最初是在 ICertAdmin 介面中定義。

呼叫此方法之前,您必須先呼叫 IsValidCertificate 方法。 如需詳細資訊,請參閱<備註>。

語法

HRESULT GetRevocationReason(
  [out] LONG *pReason
);

參數

[out] pReason

將接收撤銷原因之變數的指標。

傳回值

C++

如果方法成功,方法會傳回S_OK,而 pReason 參數會設定為下表所列的其中一個值。

如果方法失敗,它會傳回 HRESULT 值,指出錯誤。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

VB

傳回值,指定撤銷憑證的原因。 此值可以是下列其中一個撤銷原因代碼, (在 Wincrypt.h) 中定義。
傳回碼 Description
CRL_REASON_UNSPECIFIED
未指定撤銷原因。
CRL_REASON_KEY_COMPROMISE
已知或懷疑主體的私密金鑰或憑證中所驗證主體的其他層面遭到入侵。
CRL_REASON_CA_COMPROMISE
已知或懷疑 CA 的私密金鑰或其他在憑證中驗證的 CA 層面遭到入侵。
CRL_REASON_AFFILIATION_CHANGED
憑證中主體的名稱或其他資訊已經過修改,但沒有任何原因會懷疑私密金鑰已遭入侵。
CRL_REASON_SUPERSEDED
憑證已被取代,但沒有任何原因會懷疑私密金鑰已遭入侵。
CRL_REASON_CESSATION_OF_OPERATION
已發行憑證的目的不再需要憑證,但沒有任何原因會懷疑私密金鑰已遭入侵。
CRL_REASON_CERTIFICATE_HOLD
憑證已保留。

備註

呼叫 GetRevocationReason之前,請先呼叫 IsValidCertificate 方法來擷取憑證的處置。 若要呼叫 GetRevocationReason,您必須從先前的呼叫收到憑證處置CA_DISP_REVOKED,指出憑證已撤銷。 對 IsValidCertificate 的呼叫會建立您要擷取其撤銷原因之憑證的身分識別。

系統管理工作使用 DCOM。 呼叫這個介面方法的程式碼,如舊版 Certadm.h 中所定義,只要用戶端和伺服器都執行相同的 Windows 作業系統,就會在 Windows 伺服器上執行。

範例

// The value for nDisp was set by 
// a call to ICertAdmin2::IsValidCertificate.
if (CA_DISP_REVOKED == nDisp)
{
    // Variable to contain revocation reason.
    long       nReason;

    // Retrieve the revocation reason.
    hr = pCertAdmin->GetRevocationReason(&nReason);
    if (FAILED(hr))
    {
        printf("Failed GetRevocationReason [%x]\n", hr);
        goto error;
    }
    else
        printf("Revocation reason = %d\n", nReason );
}

規格需求

   
最低支援的用戶端 都不支援
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 certadm.h (包含 Certsrv.h)
程式庫 Certidl.lib
Dll Certadm.dll

另請參閱

CCertAdmin

ICertAdmin

ICertAdmin2

IsValidCertificate