O argumento BypassList de System.Net.WebProxy contén expresións regulares. Un patrón como *.office.example non é válido porque o asterisco inicial non ten unha expresión anterior que repetir.

Para solicitudes HTTP e HTTPS a office.example e os seus subdominios, unha configuración de PowerShell pode usar:

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

Os puntos escapados coinciden con puntos literais. O grupo repetido de etiqueta de nome de host admite tanto o dominio base como os nomes por baixo del. As áncoras manteñen un nome como office.example.other.test fóra desta regra. As cadeas de PowerShell entre comiñas simples conservan as barras invertidas que usa a expresión.

A implementación actual de .NET compara estas expresións co esquema, o nome de host e o porto non predeterminado do destino. Non inclúe a ruta da solicitude nin a cadea de consulta. Por iso o grupo de porto opcional tamén permite portos non predeterminados; elimíneo ou restrínxao se a política esixe un servizo concreto.

BypassProxyOnLocal é false neste exemplo para que a política de expresión regular poida inspeccionarse por separado desa configuración adicional de omisión. Achegue o obxecto proxy resultante ao cliente HTTP que deba usalo. Para unha proba de URL pública permitida fóra do dominio de omisión, unha entrada HTTP da HTTP proxy list pode fornecer o seu enderezo, sen unha conta de proxy configurada.

Use IsBypassed con valores Uri representativos para inspeccionar a decisión de encamiñamento: o dominio base, un subdominio, un host externo non relacionado e un sufixo máis longo enganoso. Un resultado true significa que se escolleu o acceso directo; non demostra que o destino directo sexa alcanzable.

Artigos relacionados