ورودیهای عبور WebProxy را بهصورت عبارتهای باقاعده بنویسید
یک عبارت عبور معتبر برای System.Net.WebProxy با نقطههای فراری و مرزهای صریح نام میزبان بسازید، نه با نویسه عام به سبک پوسته.
آرگومان 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
)
نقطههای فراری با نقطههای واقعی مطابقت دارند. گروه تکرارشده برچسب نام میزبان هم دامنه پایه و هم نامهای زیر آن را میپذیرد. لنگرها نامی مانند office.example.other.test را بیرون از این قاعده نگه میدارند. رشتههای PowerShell با کوتیشن تکی بکاسلشهایی را که عبارت استفاده میکند حفظ میکنند.
پیادهسازی کنونی .NET این عبارتها را با طرحواره، نام میزبان و درگاه غیرپیشفرض مقصد تطبیق میدهد. مسیر درخواست یا رشته پرسوجو را شامل نمیشود. بنابراین گروه اختیاری درگاه درگاههای غیرپیشفرض را نیز مجاز میکند؛ اگر سیاست سرویس مشخصی میخواهد آن را حذف یا محدود کنید.
در این مثال BypassProxyOnLocal برابر false است تا سیاست عبارت باقاعده جدا از آن تنظیم عبور اضافی بررسی شود. شیء پروکسی حاصل را به کلاینت HTTP که باید از آن استفاده کند پیوست کنید. برای آزمون مجاز یک URL عمومی بیرون از دامنه عبور، یک ورودی HTTP از HTTP proxy list میتواند نشانی خود را فراهم کند، بدون حساب پروکسی پیکربندیشده.
از IsBypassed با مقادیر Uri نمونه استفاده کنید تا تصمیم مسیریابی را بررسی کنید: دامنه پایه، یک زیردامنه، یک میزبان خارجی بیربط و پسوند طولانیتر فریبنده. نتیجه true یعنی دسترسی مستقیم انتخاب شده است؛ ثابت نمیکند که مقصد مستقیم در دسترس است.