Pišite WebProxy izuzetke kao regularne izraze
Napravite valjan izraz izuzetka za System.Net.WebProxy sa escapovanim tačkama i eksplicitnim granicama imena hosta umjesto zamjenskog znaka u stilu ljuske.
Argument BypassList klase System.Net.WebProxy sadrži regularne izraze. Uzorak poput *.office.example nije valjan jer zvjezdica na početku nema prethodni izraz koji bi ponavljala.
Za HTTP i HTTPS zahtjeve prema office.example i njegovim poddomenama, PowerShell konfiguracija može koristiti:
$bypass = @('^https?://([a-z0-9-]+\.)*office\.example(:[0-9]+)?$')
$proxy = [System.Net.WebProxy]::new(
'http://proxy.example:8080',
$false,
[string[]]$bypass
)
Escapovane tačke odgovaraju doslovnim tačkama. Ponovljena grupa oznake imena hosta dopušta i osnovnu domenu i imena ispod nje. Sidra drže ime poput office.example.other.test izvan ovog pravila. PowerShell stringovi u jednostrukim navodnicima čuvaju obrnute kose crte koje izraz koristi.
Trenutna .NET implementacija poredi ove izraze sa šemom odredišta, imenom hosta i nestandardnim portom. Ne uključuje putanju zahtjeva ni niz upita. Zato opcionalna grupa porta dopušta i nestandardne portove; uklonite je ili suzite ako pravila zahtijevaju određenu uslugu.
BypassProxyOnLocal je false u ovom primjeru kako bi se regex pravilo moglo provjeriti odvojeno od te dodatne postavke izuzetka. Prikačite dobijeni proxy objekat HTTP klijentu koji ga treba koristiti. Za dopušteni test javnog URL-a izvan domene izuzetka, HTTP zapis iz HTTP proxy list može dati svoju adresu, bez konfigurisanog proxy računa.
Koristite IsBypassed sa reprezentativnim Uri vrijednostima da provjerite odluku o usmjeravanju: osnovna domena, jedna poddomena, nepovezani vanjski host i obmanjujući duži sufiks. Rezultat true znači da je odabran direktan pristup; on ne dokazuje da je direktno odredište dostupno.