L'argomento BypassList di System.Net.WebProxy contiene espressioni regolari. Un modello come *.office.example non è valido perché l'asterisco iniziale non ha un'espressione precedente da ripetere.

Per le richieste HTTP e HTTPS verso office.example e i suoi sottodomini, una configurazione PowerShell può usare:

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

I punti sottoposti a escape corrispondono a punti letterali. Il gruppo ripetuto dell'etichetta del nome host ammette sia il dominio di base sia i nomi sottostanti. Le ancore tengono un nome come office.example.other.test fuori da questa regola. Le stringhe PowerShell tra apici singoli conservano le barre rovesciate usate dall'espressione.

L'implementazione .NET attuale confronta queste espressioni con lo schema, il nome host e la porta non predefinita della destinazione. Non include il percorso della richiesta né la stringa di query. Il gruppo di porta facoltativo consente quindi anche porte non predefinite; rimuovetelo o restringetelo se la politica richiede un servizio specifico.

BypassProxyOnLocal è false in questo esempio così che la politica dell'espressione regolare possa essere esaminata separatamente da quell'impostazione aggiuntiva di eccezione. Collegate l'oggetto proxy risultante al client HTTP che deve usarlo. Per un test consentito di un URL pubblico fuori dal dominio di eccezione, una voce HTTP dalla HTTP proxy list può fornirne l'indirizzo, senza alcun account proxy configurato.

Usate IsBypassed con valori Uri rappresentativi per esaminare la decisione di instradamento: il dominio di base, un sottodominio, un host esterno non correlato e un suffisso più lungo ingannevole. Un risultato true significa che è stato scelto l'accesso diretto; non dimostra che la destinazione diretta sia raggiungibile.

Articoli correlati