Share via


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 のジョブ エラー コンテキストとコールバックからのエラー HRESULT を使用してBG_JOB_STATE_TRANSIENT_ERRORに移行します。 コールバックを呼び出せなかった場合 (たとえば、プログラムが終了した後に BITS でサーバー証明書を検証する必要が生じていました)、ジョブ エラー コードが BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIREDされます。 アプリケーションを次に実行するときに、検証コールバックをもう一度設定してジョブを再開することで、このエラーを修正できます。

要件

要件
サポートされている最小のクライアント Windows 10 Version 1809 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2016 [デスクトップ アプリのみ]
Header bits10_3.h (Bits.h を含む)
Library Bits.lib
[DLL] Bits.dll

こちらもご覧ください

IBackgroundCopyServerCertificateValidationCallback