BypassList-argumentet i System.Net.WebProxy indeholder regulære udtryk. Et mønster som *.office.example er ugyldigt, fordi den indledende stjerne ikke har noget foregående udtryk at gentage.

For HTTP- og HTTPS-anmodninger til office.example og dets underdomæner kan en PowerShell-konfiguration bruge:

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

De escaped punktummer matcher bogstavelige punktummer. Den gentagne gruppe for værtsnavnets etiket tillader både basisdomænet og navne under det. Ankerne holder et navn som office.example.other.test uden for denne regel. PowerShell-strenge med enkelte citationstegn bevarer de omvendte skråstreger, som udtrykket bruger.

Den nuværende .NET-implementering matcher disse udtryk mod destinationens skema, værtsnavn og ikke-standardport. Den omfatter ikke anmodningens sti eller forespørgselsstreng. Den valgfrie portgruppe tillader derfor også ikke-standardporte; fjern eller indsnævr den, hvis politikken kræver en bestemt tjeneste.

BypassProxyOnLocal er false i dette eksempel, så regex-politikken kan undersøges separat fra den ekstra undtagelsesindstilling. Knyt det resulterende proxyobjekt til den HTTP-klient, der skal bruge det. Til en tilladt offentlig URL-test uden for undtagelsesdomænet kan en HTTP-post fra HTTP proxy list levere sin adresse, uden en konfigureret proxykonto.

Brug IsBypassed med repræsentative Uri-værdier til at undersøge routingbeslutningen: basisdomænet, et underdomæne, en uvedkommende ekstern vært og et vildledende længere suffiks. Et true-resultat betyder, at direkte adgang blev valgt; det beviser ikke, at den direkte destination kan nås.

Relaterede artikler