IBackgroundCopyJobHttpOptions3::SetServerCertificateValidationInterface 方法 (bits10_3.h)
開啟 HTTPS 連線時,會傳送伺服器證書。 使用這個方法來設定要呼叫的回呼,以驗證這些伺服器證書。
語法
HRESULT SetServerCertificateValidationInterface(
IUnknown *certValidationCallback
);
參數
certValidationCallback
類型: IUnknown*
實作 IBackgroundCopyServerCertificateValidationCallback 之物件的指標。 若要移除目前的回呼介面指標,請將此參數設定為 nullptr
。
傳回值
類型: HRESULT
如果函式成功,它會 傳回S_OK。 否則,它會傳回 HRESULT錯誤碼。
傳回值 | 描述 |
---|---|
E_NOINTERFACE | 您傳遞無法查詢 IBackgroundCopyServerCertificateValidationCallback 的介面指標。 |
BG_E_READ_ONLY_WHEN_JOB_ACTIVE | 作業的狀態必須是PAUSED,才能設定回呼。 |
備註
當您想要在伺服器證書上執行自己的檢查時,請使用這個方法。
只有在您實作 IBackgroundCopyServerCertificateValidationCallback 介面時,才呼叫這個方法。
當您的應用程式終止時,驗證介面會變成無效;BITS 不會維護驗證介面的記錄。 因此,應用程式的初始化程式應該在您想要接收憑證驗證要求的那些現有作業上呼叫 SetServerCertificateValidationInterface 。
如果多個應用程式呼叫 SetServerCertificateValidationInterface 來設定作業的通知介面,則最後一個要呼叫的應用程式就是接收通知的應用程式。 其他應用程式將不會收到通知。
如果在憑證的OS驗證期間發現任何憑證錯誤,則會中止連線,而且永遠不會呼叫自定義回呼。 您可以使用 對 IBackgroundCopyJobHttpOptions::SetSecurityFlags 的呼叫來自定義 OS 驗證邏輯。 例如,您可以忽略預期的憑證驗證錯誤。
如果通過OS驗證,則會先呼叫 IBackgroundCopyServerCertificateValidationCallback::ValidateServerCertificate 方法,再完成 TLS 交握,並在傳送 HTTP 要求之前呼叫。
如果您的驗證方法拒絕憑證,作業將會轉換至 BG_JOB_STATE_TRANSIENT_ERROR ,其中作業錯誤內容為 BG_ERROR_CONTEXT_SERVER_CERTIFICATE_CALLBACK ,以及回呼的錯誤 HRESULT 。 例如,如果您的回呼無法 (呼叫,因為在您程序結束) 之後驗證伺服器證書所需的 BITS,則會 BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIRED作業錯誤碼。 當您的應用程式下次執行時,可以藉由再次設定驗證回呼並繼續作業來修正此錯誤。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 版本 1809 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2016 [僅限傳統型應用程式] |
標頭 | bits10_3.h (包含 Bits.h) |
程式庫 | Bits.lib |
Dll | Bits.dll |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應