CefSharp SetProxyAsync:ナビゲーション前に待機して確認する
RequestContext.SetProxyAsync は設定を CEF の UI スレッドにスケジュールします。WinForms/WPF の UI スレッドが自動的にそのスレッドになるわけではありません。
対象のブラウザーを提供する初期化済みのリクエストコンテキストを使用します。
using System;
using CefSharp;
var result = await requestContext.SetProxyAsync(
"http", "proxy.example", 8080);
if (!result.Success)
{
throw new InvalidOperationException(result.ErrorMessage);
}ナビゲーションの前に操作を待機し、失敗を処理します。許可された公開サイトの確認では、HTTP プロキシ一覧が HTTP ホストとポートの引数の候補を提供します。SetProxyAsync は設定の更新を CEF の UI スレッドにスケジュールし、fixed_servers を選択します。
結果が設定を読み取り専用と報告する場合は、コマンドラインのプロキシフラグを確認してください。それらがこの更新を妨げることがあります。単に待機しても、拒否された変更が適用済みの経路になるわけではありません。
SetPreference を直接呼び出す場合も CEF の UI スレッドが必要です。通常のマルチスレッド メッセージ ループ構成では、ホストアプリケーションの WinForms または WPF の UI スレッドは別のコンテキストです。
リクエストコンテキストを共有するブラウザーは設定も共有します。これによりエンドポイントが選択されます。別個の認証コールバックが、資格情報を想定したプロキシ チャレンジに限定する必要があります。