อาร์กิวเมนต์ BypassList ของ System.Net.WebProxy มีนิพจน์ปกติ รูปแบบอย่าง *.office.example ไม่ถูกต้องเพราะดอกจันนำหน้าไม่มีนิพจน์ก่อนหน้าสำหรับทำซ้ำ

สำหรับคำขอ HTTP และ HTTPS ไปยัง office.example และโดเมนย่อย การกำหนดค่า PowerShell สามารถใช้:

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

จุดที่ escaped จะตรงกับจุดตามตัวอักษร กลุ่มป้ายชื่อโฮสต์ที่ทำซ้ำอนุญาตทั้งโดเมนฐานและชื่อที่อยู่ใต้โดเมนนั้น ตัวยึดจะกันชื่ออย่าง office.example.other.test ไว้นอกกฎนี้ สตริง PowerShell ในเครื่องหมายคำพูดเดี่ยวจะรักษาแบ็กสแลชที่นิพจน์ใช้

การทำงานของ .NET ปัจจุบันจับคู่นิพจน์เหล่านี้กับสคีมา ชื่อโฮสต์ และพอร์ตที่ไม่ใช่ค่าเริ่มต้นของปลายทาง ไม่รวมเส้นทางคำขอหรือสตริงคำค้น ดังนั้นกลุ่มพอร์ตที่ไม่บังคับจึงอนุญาตพอร์ตที่ไม่ใช่ค่าเริ่มต้นด้วย ลบหรือจำกัดกลุ่มนี้หากนโยบายต้องการบริการเฉพาะ

ในตัวอย่างนี้ BypassProxyOnLocal เป็น false เพื่อให้นโยบาย regex ตรวจสอบแยกจากการตั้งค่าข้ามเพิ่มเติมนั้นได้ แนบออบเจ็กต์พร็อกซีที่ได้กับไคลเอนต์ HTTP ที่ควรใช้ สำหรับการทดสอบ URL สาธารณะที่ได้รับอนุญาตนอกโดเมนข้าม รายการ HTTP จากHTTP proxy listสามารถให้ที่อยู่ได้ โดยไม่ต้องกำหนดค่าบัญชีพร็อกซี

ใช้ IsBypassed กับค่า Uri ที่เป็นตัวแทนเพื่อตรวจสอบการตัดสินใจกำหนดเส้นทาง: โดเมนฐาน โดเมนย่อยหนึ่งรายการ โฮสต์ภายนอกที่ไม่เกี่ยวข้อง และส่วนต่อท้ายที่ยาวกว่าอย่างหลอกลวง ผลลัพธ์ true หมายถึงเลือกการเข้าถึงโดยตรง ไม่ได้พิสูจน์ว่าปลายทางโดยตรงเข้าถึงได้

บทความที่เกี่ยวข้อง