次の方法で共有


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 検証に合格した場合、TLS ハンドシェイクを完了する前と HTTP 要求が送信される前に、IBackgroundCopyServerCertificateValidationCallback::ValidateServerCertificate メソッドが呼び出されます。

検証メソッドが証明書を拒否した場合、ジョブは BG_ERROR_CONTEXT_SERVER_CERTIFICATE_CALLBACK のジョブ エラー コンテキストで BG_JOB_STATE_TRANSIENT_ERROR に遷移し、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 の