WebProxy-Ëmgoongs-Anträg als regulär Ausdréck schreiwen
Baut e gültegen Ëmgoongs-Ausdrock fir System.Net.WebProxy mat escapte Punkten an expliziten Hostnumm-Grenzen amplaz vun engem Shell-Wildcard.
Den BypassList-Argument vum System.Net.WebProxy enthält regulär Ausdréck. E Muster wéi *.office.example ass ongülteg, well de Stär um Ufank keen virun Ausdrock huet fir ze widderhuelen.
Fir HTTP- an HTTPS-Ufroe un office.example an seng Subdomainen kann eng PowerShell-Konfiguratioun dëst benotzen:
$bypass = @('^https?://([a-z0-9-]+\.)*office\.example(:[0-9]+)?$')
$proxy = [System.Net.WebProxy]::new(
'http://proxy.example:8080',
$false,
[string[]]$bypass
)
Déi escapt Punkten entspriechen literale Punkten. Déi widderholl Grupp vum Hostnumm-Label erlaabt souwuel d'Basisdomen wéi och Nimm drënner. D'Ankeren halen en Numm wéi office.example.other.test aus dëser Regel eraus. PowerShell-Strings mat eenzelen Anführungszeechen erhalen déi Réckschrägstrécher, déi den Ausdrock benotzt.
Déi aktuell .NET-Implementatioun vergläicht dës Ausdréck mam Schema, Hostnumm an net-Standard-Port vum Zil. Si enthält net de Request-Pad oder de Query-String. Dofir erlaabt d'optional Portgrupp och net-Standard-Porten; huelt se ewech oder enkelt se an, wann d'Politik en bestëmmten Service verlaangt.
BypassProxyOnLocal ass false an dësem Beispill, sou datt d'Regex-Politik getrennt vun där zousätzlecher Ëmgoongs-Astellung kann iwwerpréift ginn. Verbënnt den entstane Proxy-Objet mam HTTP-Client, deen en benotze soll. Fir en erlaabten ëffentlechen URL-Test baussent der Ëmgoongs-Domän kann en HTTP-Bäitrag aus der HTTP proxy list seng Adress liwweren, ouni e konfiguréierte Proxy-Konto.
Benotzt IsBypassed mat representativen Uri-Wäerter fir d'Routing-Entscheedung z'iwwerpréiwen: d'Basisdomen, eng Subdomen, en onverbonnenen externen Host an en täuschend méi laangt Suffix. En true-Resultat heescht, datt direkten Zougang gewielt gouf; et beweist net, datt d'direkt Zil erreechbar ass.