共用方式為


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