Argument BypassList triedy System.Net.WebProxy obsahuje regulárne výrazy. Vzor ako *.office.example je neplatný, pretože úvodná hviezdička nemá predchádzajúci výraz, ktorý by opakovala.

Pre požiadavky HTTP a HTTPS na office.example a jeho subdomény môže konfigurácia PowerShellu použiť:

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

Escapované bodky zodpovedajú doslovným bodkám. Opakovaná skupina označenia názvu hostiteľa pripúšťa základnú doménu aj názvy pod ňou. Kotvy udržiavajú názov ako office.example.other.test mimo tohto pravidla. Reťazce PowerShellu v jednoduchých úvodzovkách zachovávajú spätné lomítka, ktoré výraz používa.

Súčasná implementácia .NET porovnáva tieto výrazy so schémou cieľa, názvom hostiteľa a neštandardným portom. Nezahŕňa cestu požiadavky ani reťazec dotazu. Voliteľná skupina portu preto povoľuje aj neštandardné porty; odstráňte ju alebo zúžte, ak politika vyžaduje konkrétnu službu.

V tomto príklade je BypassProxyOnLocal false, aby sa pravidlo regulárneho výrazu dalo preskúmať oddelene od tohto dodatočného nastavenia výnimky. Pripojte výsledný objekt proxy ku klientovi HTTP, ktorý ho má používať. Pre povolený test verejnej URL mimo domény výnimky môže položka HTTP z HTTP proxy list poskytnúť svoju adresu, bez nakonfigurovaného proxy účtu.

Pomocou IsBypassed s reprezentatívnymi hodnotami Uri preskúmajte rozhodnutie o smerovaní: základná doména, jedna subdoména, nesúvisiaci externý hostiteľ a zavádzajúca dlhšia prípona. Výsledok true znamená, že sa zvolil priamy prístup; nepreukazuje, že priamy cieľ je dostupný.

Súvisiace články