Запісвайце запісы абыходу WebProxy як рэгулярныя выразы
Пабудуйце сапраўдны выраз абыходу System.Net.WebProxy з экранаванымі кропкамі і яўнымі межамі імя хоста замест сімбальнай маскі ў стылі абалонкі.
Аргумент 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 азначае, што абраны прамы доступ; ён не даказвае, што прамы пункт прызначэння дасягальны.