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 |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示