Аргумент BypassList класу System.Net.WebProxy містить регулярні вирази. Шаблон на кшталт *.office.example недійсний, бо провідна зірочка не має попереднього виразу для повторення.

Для HTTP- і HTTPS-запитів до office.example та його піддоменів конфігурація PowerShell може використовувати:

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

Екрановані точки відповідають буквальним точкам. Повторювана група мітки імені хоста допускає як базовий домен, так і імена під ним. Якорі утримують ім'я на кшталт office.example.other.test поза цим правилом. Рядки PowerShell в одинарних лапках зберігають зворотні скісні риски, які використовує вираз.

Поточна реалізація .NET зіставляє ці вирази зі схемою, іменем хоста й нестандартним портом призначення. Вона не включає шлях запиту чи рядок запиту. Тому необов'язкова група порту допускає й нестандартні порти; вилучіть або звузьте її, якщо політика вимагає конкретної служби.

У цьому прикладі BypassProxyOnLocal дорівнює false, щоб політику регулярного виразу можна було перевірити окремо від цього додаткового налаштування винятку. Приєднайте отриманий об'єкт проксі до HTTP-клієнта, який має його використовувати. Для дозволеної перевірки публічного URL поза доменом винятку запис HTTP зі HTTP proxy list може надати свою адресу, без налаштованого облікового запису проксі.

Використовуйте IsBypassed із репрезентативними значеннями Uri, щоб перевірити рішення про маршрутизацію: базовий домен, один піддомен, сторонній зовнішній хост і оманливий довший суфікс. Результат true означає, що обрано прямий доступ; він не доводить, що прямий пункт призначення доступний.

Схожі статті