Используйте инициализированный контекст запроса, обслуживающий нужный браузер:

using System;
using CefSharp;

var result = await requestContext.SetProxyAsync(
    "http", "proxy.example", 8080);
if (!result.Success)
{
    throw new InvalidOperationException(result.ErrorMessage);
}

Дождитесь завершения операции и обработайте сбой до навигации. Для разрешённой проверки публичного сайта список HTTP-прокси даёт кандидатов для аргументов хоста и порта HTTP. SetProxyAsync планирует обновление настройки в UI-потоке CEF и выбирает fixed_servers.

Если результат сообщает, что настройка доступна только для чтения, проверьте прокси-флаги командной строки; они могут препятствовать этому обновлению. Ожидание само по себе не превращает отклонённое изменение в применённый маршрут.

Прямой вызов SetPreference по-прежнему требует UI-потока CEF. При обычной многопоточной схеме цикла сообщений UI-поток WinForms или WPF ведущего приложения — это другой контекст.

Браузеры, разделяющие контекст запроса, разделяют и настройку. Это выбирает конечную точку; отдельный обратный вызов аутентификации должен ограничивать учётные данные предполагаемым прокси-запросом.

Похожие статьи