L'argument BypassList de System.Net.WebProxy conté expressions regulars. Un patró com *.office.example no és vàlid perquè l'asterisc inicial no té cap expressió anterior que repetir.

Per a les peticions HTTP i HTTPS a office.example i als seus subdominis, una configuració de PowerShell pot utilitzar:

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

Els punts escapats coincideixen amb punts literals. El grup repetit d'etiqueta de nom d'amfitrió admet tant el domini base com els noms que hi pengen. Els àncores mantenen un nom com office.example.other.test fora d'aquesta regla. Les cadenes de PowerShell amb cometes simples conserven les barres invertides que fa servir l'expressió.

La implementació actual de .NET compara aquestes expressions amb l'esquema, el nom d'amfitrió i el port no predeterminat de la destinació. No inclou el camí de la petició ni la cadena de consulta. Per tant, el grup de port opcional també permet ports no predeterminats; traieu-lo o estreneu-lo si la política exigeix un servei concret.

BypassProxyOnLocal és false en aquest exemple perquè la política d'expressió regular es pugui inspeccionar per separat d'aquesta configuració addicional d'excepció. Adjunteu l'objecte proxy resultant al client HTTP que l'hagi d'utilitzar. Per a una prova d'URL pública permesa fora del domini d'excepció, una entrada HTTP de la HTTP proxy list pot proporcionar-ne l'adreça, sense cap compte de proxy configurat.

Feu servir IsBypassed amb valors Uri representatius per inspeccionar la decisió d'encaminament: el domini base, un subdomini, un amfitrió extern no relacionat i un sufix més llarg enganyós. Un resultat true vol dir que s'ha triat l'accés directe; no demostra que la destinació directa sigui assolible.

Articles relacionats