BypassList-argumentet i System.Net.WebProxy inneholder regulære uttrykk. Et mønster som *.office.example er ugyldig fordi den innledende stjernen ikke har noe foregående uttrykk å gjenta.

For HTTP- og HTTPS-forespørsler til office.example og dets underdomener kan en PowerShell-konfigurasjon bruke:

$bypass = @('^https?://([a-z0-9-]+\.)*office\.example(:[0-9]+)?$')
$proxy = [System.Net.WebProxy]::new(
    'http://proxy.example:8080',
    $false,
    [string[]]$bypass
)

De escapede punktene samsvarer med bokstavelige punktum. Den gjentatte gruppen for vertsnavnetikett tillater både basisdomenet og navn under det. Ankerne holder et navn som office.example.other.test utenfor denne regelen. PowerShell-strenger i enkle anførselstegn bevarer omvendte skråstreker som uttrykket bruker.

Den nåværende .NET-implementasjonen matcher disse uttrykkene mot destinasjonens skjema, vertsnavn og ikke-standardport. Den omfatter ikke forespørselsstien eller spørringsstrengen. Den valgfrie portgruppen tillater derfor også ikke-standardporter; fjern eller begrens den hvis policyen krever en bestemt tjeneste.

BypassProxyOnLocal er false i dette eksemplet slik at regex-policyen kan undersøkes atskilt fra den ekstra unntaksinnstillingen. Knytt det resulterende proxyobjektet til HTTP-klienten som skal bruke det. For en tillatt offentlig URL-test utenfor unntaksdomenet kan en HTTP-oppføring fra HTTP proxy list oppgi adressen sin, uten en konfigurert proxykonto.

Bruk IsBypassed med representative Uri-verdier for å undersøke rutevalget: basisdomenet, ett underdomene, en urelatert ekstern vert og et villedende lengre suffiks. Et true-resultat betyr at direkte tilgang ble valgt; det beviser ikke at den direkte destinasjonen er tilgjengelig.

Relaterte artikler