Rašykite WebProxy apėjimo įrašus kaip reguliariąsias išraiškas
Sukurkite galiojančią System.Net.WebProxy apėjimo išraišką su ekranuotais taškais ir aiškiomis prieglobos vardo ribomis vietoje shell stiliaus pakaitos simbolio.
System.Net.WebProxy argumentas BypassList turi reguliariąsias išraiškas. Šablonas kaip *.office.example negalioja, nes pradinė žvaigždutė neturi ankstesnės išraiškos, kurią kartotų.
HTTP ir HTTPS užklausoms į office.example ir jo subdomenus PowerShell konfigūracija gali naudoti:
$bypass = @('^https?://([a-z0-9-]+\.)*office\.example(:[0-9]+)?$')
$proxy = [System.Net.WebProxy]::new(
'http://proxy.example:8080',
$false,
[string[]]$bypass
)
Ekranuoti taškai atitinka tiesioginius taškus. Pasikartojanti prieglobos vardo žymos grupė leidžia ir pagrindinį domeną, ir pavadinimus po juo. Inkarai palieka tokį pavadinimą kaip office.example.other.test už šios taisyklės ribų. PowerShell eilutės vienose kabutėse išsaugo atgalinius pasvirusius brūkšnius, kuriuos naudoja išraiška.
Dabartinė .NET realizacija lygina šias išraiškas su paskirties schemą, prieglobos vardu ir nestandartiniu prievadu. Ji neapima užklausos kelio ar užklausos eilutės. Todėl pasirenkama prievado grupė leidžia ir nestandartinius prievadus; pašalinkite ją arba susiaurinkite, jei politika reikalauja konkrečios paslaugos.
Šiame pavyzdyje BypassProxyOnLocal yra false, kad regex politiką būtų galima tikrinti atskirai nuo to papildomo apėjimo nustatymo. Prijunkite gautą tarpinio serverio objektą prie HTTP kliento, kuris turėtų jį naudoti. Leidžiamam viešo URL bandymui už apėjimo domeno ribų HTTP įrašas iš HTTP proxy list gali pateikti savo adresą, be sukonfigūruotos tarpinio serverio paskyros.
Naudokite IsBypassed su reprezentatyviomis Uri reikšmėmis maršrutizavimo sprendimui patikrinti: pagrindinis domenas, vienas subdomenas, nesusijęs išorinis prieglobos serveris ir klaidinantis ilgesnis galūnė. Rezultatas true reiškia, kad pasirinkta tiesioginė prieiga; jis neįrodo, kad tiesioginė paskirtis pasiekiama.