CefSharp SetProxyAsync: vor der Navigation abwarten und prüfen
RequestContext.SetProxyAsync plant die Einstellung im UI-Thread von CEF ein; der UI-Thread von WinForms/WPF ist nicht automatisch dieser Thread.
Verwenden Sie den initialisierten Anforderungskontext, der den vorgesehenen Browser bedient:
using System;
using CefSharp;
var result = await requestContext.SetProxyAsync(
"http", "proxy.example", 8080);
if (!result.Success)
{
throw new InvalidOperationException(result.ErrorMessage);
}Warten Sie den Vorgang ab und behandeln Sie Fehler vor der Navigation. Für eine zulässige Prüfung einer öffentlichen Website liefert die HTTP-Proxy-Liste Kandidaten für die Argumente HTTP-Host und Port. SetProxyAsync plant die Aktualisierung der Einstellung im CEF-UI-Thread ein und wählt fixed_servers.
Meldet das Ergebnis, die Einstellung sei schreibgeschützt, prüfen Sie die Proxy-Flags der Kommandozeile; sie können diese Aktualisierung verhindern. Bloßes Abwarten macht aus einer abgelehnten Änderung keine angewendete Route.
Ein direkter Aufruf von SetPreference benötigt weiterhin den UI-Thread von CEF. Bei der üblichen mehrthreadigen Nachrichtenschleife ist der WinForms- oder WPF-UI-Thread der Hostanwendung ein anderer Kontext.
Browser, die den Anforderungskontext teilen, teilen die Einstellung. Das wählt den Endpunkt; ein separater Authentifizierungs-Callback muss Anmeldedaten auf die vorgesehene Proxy-Abfrage beschränken.