Argument BypassList klasy System.Net.WebProxy zawiera wyrażenia regularne. Wzorzec taki jak *.office.example jest nieprawidłowy, ponieważ początkowa gwiazdka nie ma poprzedzającego wyrażenia do powtórzenia.

Dla żądań HTTP i HTTPS do office.example i jego subdomen konfiguracja programu PowerShell może użyć:

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

Eskaponane kropki pasują do literalnych kropek. Powtórzona grupa etykiety nazwy hosta dopuszcza zarówno domenę bazową, jak i nazwy pod nią. Kotwice utrzymują nazwę taką jak office.example.other.test poza tą regułą. Ciągi programu PowerShell w apostrofach zachowują ukośniki odwrotne używane przez wyrażenie.

Obecna implementacja .NET dopasowuje te wyrażenia do schematu, nazwy hosta i niebazowego portu celu. Nie obejmuje ścieżki żądania ani ciągu zapytania. Dlatego opcjonalna grupa portu dopuszcza także porty niebazowe; usuń ją lub zawęź, jeśli zasady wymagają konkretnej usługi.

W tym przykładzie BypassProxyOnLocal ma wartość false, aby zasady wyrażenia regularnego można było sprawdzić oddzielnie od tego dodatkowego ustawienia wyjątku. Dołącz wynikowy obiekt serwera proxy do klienta HTTP, który powinien go używać. Do dozwolonego testu publicznego adresu URL poza domeną wyjątku wpis HTTP z HTTP proxy list może podać swój adres, bez skonfigurowanego konta proxy.

Użyj IsBypassed z reprezentatywnymi wartościami Uri, aby sprawdzić decyzję o routingu: domena bazowa, jedna subdomena, niepowiązany host zewnętrzny i mylący dłuższy sufiks. Wynik true oznacza wybór dostępu bezpośredniego; nie dowodzi, że bezpośredni cel jest osiągalny.

Powiązane artykuły