ICertRequest::GetCACertificate 方法 (certcli.h)

GetCACertificate方法會傳回憑證服務伺服器的憑證授權單位單位 (CA) 憑證。

語法

HRESULT GetCACertificate(
  [in]          LONG       fExchangeCertificate,
  [in]          const BSTR strConfig,
  [in]          LONG       Flags,
  [out, retval] BSTR       *pstrCertificate
);

參數

[in] fExchangeCertificate

布林值,指定要傳回的 CA 憑證。 如果 fExchangeCertificate 設定為 false,將會傳回 CA 的 簽章憑證 。 CA 的簽章憑證可用來驗證 CA 所簽發憑證的簽章。

Windows Server 2003: 如果 fExchangeCertificate 設定為 true,將會傳回 CA 的 Exchange 憑證。 CA 的 Exchange 憑證可用來加密傳送至 CA 的要求。

從 Windows 7 和 Windows Server 2008 R2 開始,在註冊 HTTPs:// 期間會忽略此參數,如果成功,則函式一律會傳回 CA 交換憑證。 若要擷取註冊 Web 服務的 CA 簽署憑證,請使用ICertificationAuthority介面上的Property方法搭配 CAPropCertificate EnrollmentCAProperty列舉值。

請注意, TRUE 定義 (Microsoft 標頭檔) C/C++ 程式設計人員,而 Visual Basic 會將 True 關鍵字定義為負數。 因此,Visual Basic 開發人員必須使用一個 (,而不是 True) ,將此參數設定為 TRUE。 不過,若要將此參數設定為 FALSE,Visual Basic 開發人員可以使用零或 False

[in] strConfig

表示憑證服務伺服器的有效組態字串。 此字串可以是註冊伺服器的 HTTPS URL,或是以 ComputerName\CAName格式表示,其中ComputerName是伺服器的網路名稱,而 CAName憑證授權單位單位的一般名稱,如憑證服務設定期間輸入。 如需組態字串名稱的相關資訊,請參閱 ICertConfig

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支援 HTTPS URL 作為輸入。

[in] Flags

下列旗標可用來指定傳回憑證的格式。

意義
CR_OUT_BASE64HEADER
BASE64 格式開頭/結尾。
CR_OUT_BASE64
不含開始/結束的 BASE64 格式。
CR_OUT_BINARY
二進位格式。
 

下列旗標可以與格式旗標結合,以指定完整的憑證鏈結應該包含在要求的 CA 憑證中。 否則,只會傳回 X.509 格式 (要求的 CA 憑證) 。

意義
CR_OUT_CHAIN
在 PKCS #7 中包含完整的憑證鏈結。

[out, retval] pstrCertificate

BSTR的指標,其中包含指定格式的憑證服務伺服器的 CA 憑證。

傳回值

C++

如果方法成功,方法會傳回S_OK。

成功完成此方法時,*pstrCertificate 會設定為包含 CA 憑證的 BSTR 。 若要使用此方法,請建立 BSTR 類型的變數、將變數設定為 Null,並將此變數的位址傳遞為 pstrCertificate

當您使用 *pstrCertificate完成時,請呼叫 SysFreeString 函式來釋放它。

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

VB

憑證服務伺服器的 CA 憑證,格式為指定。

備註

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

規格需求

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

另請參閱

CCertRequest

ICertRequest

ICertRequest2

ICertRequest3