Argumen BypassList dalam System.Net.WebProxy mengandungi ungkapan nalar. Corak seperti *.office.example tidak sah kerana tanda bintang di hadapan tiada ungkapan sebelumnya untuk diulang.

Untuk permintaan HTTP dan HTTPS ke office.example dan subdomainnya, konfigurasi PowerShell boleh menggunakan:

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

Titik yang dilepaskan sepadan dengan titik literal. Kumpulan label nama hos yang berulang membenarkan domain asas dan nama di bawahnya. Sauh mengekalkan nama seperti office.example.other.test di luar peraturan ini. Rentetan PowerShell dalam petikan tunggal mengekalkan garis condong ke belakang yang digunakan oleh ungkapan itu.

Pelaksanaan .NET semasa memadankan ungkapan ini dengan skema, nama hos dan port bukan lalai destinasi. Ia tidak merangkumi laluan permintaan atau rentetan pertanyaan. Oleh itu kumpulan port pilihan turut membenarkan port bukan lalai; buang atau sempitkannya jika dasar memerlukan perkhidmatan tertentu.

BypassProxyOnLocal ialah false dalam contoh ini supaya dasar regex boleh diperiksa secara berasingan daripada tetapan pintasan tambahan itu. Lampirkan objek proksi yang terhasil kepada klien HTTP yang sepatutnya menggunakannya. Untuk ujian URL awam yang dibenarkan di luar domain pintasan, entri HTTP daripada HTTP proxy list boleh menyediakan alamatnya, tanpa akaun proksi dikonfigurasikan.

Gunakan IsBypassed dengan nilai Uri yang mewakili untuk memeriksa keputusan penghalaan: domain asas, satu subdomain, hos luaran tidak berkaitan dan akhiran lebih panjang yang mengelirukan. Hasil true bermaksud akses langsung dipilih; ia tidak membuktikan bahawa destinasi langsung boleh dicapai.

Artikel berkaitan