共用方式為


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

另請參閱

IBackgroundCopyServerCertificateValidationCallback