Un proxy fourni via AdditionalBrowserArguments fait partie de la commande de lancement du processus de navigateur WebView2. Modifier ensuite cet objet d'options ne réécrit pas la ligne de commande du processus en cours.

Pour une application .NET qui crée une route indépendante, choisissez un dossier de données utilisateur appartenant à l'application avant d'initialiser le contrôle :

var options = new Microsoft.Web.WebView2.Core.CoreWebView2EnvironmentOptions
{
    AdditionalBrowserArguments = "--proxy-server=http://proxy.example:8080"
};
var environment = await Microsoft.Web.WebView2.Core.CoreWebView2Environment
    .CreateAsync(userDataFolder: profileFolder, options: options);
await browser.EnsureCoreWebView2Async(environment);

profileFolder est un répertoire inscriptible choisi par l'application, et browser est le contrôle WebView2 existant non initialisé. Exécutez l'initialisation via le cycle de vie asynchrone normal de l'interface. La liste de proxys HTTP propose des candidats pour l'indicateur de lancement lorsque ce profil effectuera des requêtes autorisées vers des sites publics.

Un nouvel objet d'options n'est pas un nouveau processus

Les environnements associés au même dossier de données utilisateur peuvent partager le processus du navigateur. Créer un autre objet avec ce dossier n'est pas un moyen de lui attribuer des indicateurs de proxy contradictoires au lancement.

Pour des politiques simultanées via ce mécanisme de lancement, utilisez des environnements distincts avec des dossiers distincts. Cela sépare aussi leurs données de sites ; un second environnement n'hérite pas automatiquement de l'état de connexion du premier.

Pour réutiliser le dossier d'origine avec de nouveaux paramètres de lancement, fermez les contrôles qui partagent son processus et coordonnez l'arrêt avant d'initialiser un remplacement. Éliminer un contrôle alors qu'un autre maintient le processus en vie n'est pas cette transition.

Gardez le cycle de vie de l'environnement et du dossier avec l'application. Créer un nouveau processus de navigateur pour chaque requête peut coûter bien plus cher que de maintenir un petit ensemble délibéré de routes.

Articles similaires