Pište výjimky WebProxy jako regulární výrazy
Sestavte platný výraz výjimky pro System.Net.WebProxy s escapovanými tečkami a explicitními hranicemi názvu hostitele místo zástupného znaku ve stylu shellu.
Argument BypassList třídy System.Net.WebProxy obsahuje regulární výrazy. Vzor jako *.office.example je neplatný, protože úvodní hvězdička nemá předchozí výraz, který by opakovala.
Pro požadavky HTTP a HTTPS na office.example a jeho subdomény může konfigurace PowerShellu použít:
$bypass = @('^https?://([a-z0-9-]+\.)*office\.example(:[0-9]+)?$')
$proxy = [System.Net.WebProxy]::new(
'http://proxy.example:8080',
$false,
[string[]]$bypass
)
Escapované tečky odpovídají doslovným tečkám. Opakovaná skupina popisku názvu hostitele připouští jak základní doménu, tak názvy pod ní. Kotvy udržují název jako office.example.other.test mimo toto pravidlo. Řetězce PowerShellu v jednoduchých uvozovkách zachovávají zpětná lomítka, která výraz používá.
Současná implementace .NET porovnává tyto výrazy se schématem cíle, názvem hostitele a nestandardním portem. Nezahrnuje cestu požadavku ani řetězec dotazu. Volitelná skupina portu proto povoluje i nestandardní porty; odstraňte ji nebo zúžte, pokud zásady vyžadují konkrétní službu.
V tomto příkladu je BypassProxyOnLocal false, aby bylo možné pravidlo regulárního výrazu zkontrolovat odděleně od tohoto dodatečného nastavení výjimky. Připojte výsledný objekt proxy ke klientovi HTTP, který jej má používat. Pro povolený test veřejné URL mimo doménu výjimky může adresu poskytnout položka HTTP ze HTTP proxy list, bez nakonfigurovaného proxy účtu.
Pomocí IsBypassed s reprezentativními hodnotami Uri prohlédněte rozhodnutí o směrování: základní doména, jedna subdoména, nesouvisející externí hostitel a zavádějící delší přípona. Výsledek true znamená, že byl zvolen přímý přístup; neprokazuje, že je přímé cílové umístění dosažitelné.