Аргумент 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 азначае, што абраны прамы доступ; ён не даказвае, што прамы пункт прызначэння дасягальны.

Падобныя артыкулы