.NET IWebProxy: از تبدیل پروکسیهای سیستم به WebProxy بپرهیزید
به یک پروکسی سیستم که بهصورت IWebProxy برگردانده میشود رسیدگی کنید بدون آنکه فرض کنید کلاس مشخص آن WebProxy است.
IWebProxy policy = WebRequest.GetSystemWebProxy();
request.Proxy = policy;
شیء برگرداندهشده را بهصورت IWebProxy نگه دارید. این قطعه برای کد موجود مبتنی بر WebRequest است، نه توصیهای برای پذیرش آن API قدیمی در یک برنامهٔ جدید.
WebProxy رابط را پیادهسازی میکند، اما هر شیئی که رابط را پیادهسازی میکند از WebProxy ارث نمیبرد. بنابراین یک پوشش سیستم میتواند تبدیل را پیش از آنکه درخواست شبکهای رخ دهد رد کند. نام کلاس خصوصی .NET Framework مانند WebProxyWrapperOpaque جزئیات پیادهسازی است، نه مشکل نقطهٔ پایانی پروکسی یا حساب.
برای تصمیم مسیر، IsBypassed(destination) و GetProxy(destination) را با URI واقعی مقصد فراخوانی کنید. عبور ممکن است خود مقصد را برگرداند، و خطمشی مبتنی بر PAC میتواند برای میزبان دیگری مسیر دیگری انتخاب کند.
برای احراز هویت، IWebProxy از پیش Credentials را ارائه میکند. بدون تبدیل، از حساب و روش پشتیبانیشده برای رسیدن به ویژگی استفاده کنید.
استخراج یک URI برای ساختن WebProxy جایگزین رفتار خطمشی اصلی بهازای هر مقصد را دور میریزد. این کار را تنها زمانی انجام دهید که نقطهٔ پایانی ثابت همان پیکربندی موردنظر برنامه باشد، نه بهعنوان راهحل خطای نوع.