.net - free proxy list



डिफ़ॉल्ट क्रेडेंशियल्स का उपयोग करने के लिए मुझे डिफ़ॉल्ट प्रॉक्सी कैसे सेट करनी चाहिए? (6)

.NET 2.0 से आपको ऐसा करने की आवश्यकता नहीं है। यदि आप वेब अनुरोध पर प्रॉक्सी प्रॉपर्टी को स्पष्ट रूप से सेट नहीं करते हैं तो यह स्थिर WebRequest.DefaultWebProxy के मान का उपयोग करता है। यदि आप बाद के वेबरक्वेट्स द्वारा उपयोग की जाने वाली प्रॉक्सी को बदलना चाहते हैं, तो आप इस स्थैतिक DefaultWebProxy प्रॉपर्टी को सेट कर सकते हैं।

WebRequest.DefaultWebProxy का डिफ़ॉल्ट व्यवहार इंटरनेट एक्सप्लोरर द्वारा उपयोग की जाने वाली समान अंतर्निहित सेटिंग्स का उपयोग करना है।

यदि आप वर्तमान उपयोगकर्ता को विभिन्न प्रॉक्सी सेटिंग्स का उपयोग करना चाहते हैं तो आपको कोड करना होगा

WebRequest webRequest = WebRequest.Create("http://stackoverflow.com/");
webRequest.Proxy = new WebProxy("http://proxyserver:80/",true);

या

WebRequest.DefaultWebProxy = new WebProxy("http://proxyserver:80/",true);

आपको प्रॉक्सी के लिए ऑब्जेक्ट मॉडल को भी याद रखना चाहिए, यह अवधारणा शामिल है कि गंतव्य होस्टनाम के आधार पर प्रॉक्सी अलग हो सकती है। WebRequest.Proxy की संपत्ति डीबगिंग और जांच करते समय यह चीजों को थोड़ा उलझन में डाल सकता है। कॉल

webRequest.Proxy.GetProxy(new Uri("http://google.com.au")) प्रॉक्सी सर्वर के वास्तविक विवरण देखने के लिए उपयोग किया जाएगा।

इस बारे में कुछ बहस प्रतीत होती है कि क्या आप किसी भी प्रॉक्सी के उपयोग को रोकने के लिए webRequest.Proxy या WebRequest.DefaultWebProxy = null सेट कर सकते हैं। यह मेरे लिए ठीक काम करता प्रतीत होता है लेकिन आप इसे आवश्यक व्यवहार प्राप्त करने के लिए कोई पैरामीटर के साथ new DefaultProxy() सेट कर सकते हैं। जांच करने की एक और बात यह है कि यदि आपके अनुप्रयोग कॉन्फ़िगरेशन फ़ाइल में प्रॉक्सी तत्व मौजूद है, तो .NET Framework इंटरनेट एक्सप्लोरर में प्रॉक्सी सेटिंग्स का उपयोग नहीं करेगा।

एमएसडीएन पत्रिका लेख .NET में स्वचालित कॉन्फ़िगरेशन के साथ उपयोगकर्ताओं को बोझेन बंद करें , हुड के तहत क्या हो रहा है इसके बारे में और जानकारी देता है।

https://src-bin.com

निम्नलिखित कोड मेरे लिए काम करता है:

var webProxy = WebProxy.GetDefaultProxy();
webProxy.UseDefaultCredentials = true;
WebRequest.DefaultWebProxy = webProxy;

दुर्भाग्यवश, WebProxy.GetDefaultProxy() को बहिष्कृत किया गया है। मुझे और क्या करते रहना चाहिए?

(मेरे परिनियोजन में defaultProxy सेटिंग्स को सेट करने के लिए app.config का उपयोग करने की अनुमति नहीं है)


Answer #1

आप UseDefaultCredentials -Property को कोड से "सत्य" पर सेट करने के लिए प्रतिबिंब का उपयोग कर सकते हैं

System.Reflection.PropertyInfo pInfo = System.Net.WebRequest.DefaultWebProxy.GetType().GetProperty("WebProxy", 
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);

((System.Net.WebProxy)pInfo.GetValue(System.Net.WebRequest.DefaultWebProxy, null)).UseDefaultCredentials = true;

Answer #2

ऐसा लगता है कि कुछ नए एप्लिकेशन में कॉन्फ़िगरेशन अलग है, जैसा कि मैंने इस प्रश्न पर देखा है HttpClient क्लास का उपयोग करते समय प्रॉक्सी के विरुद्ध प्रमाणीकरण कैसे करें?

<system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true">
         <proxy usesystemdefault="True" />
    </defaultProxy>
</system.net>

https://msdn.microsoft.com/en-us/library/dkwyc043.aspx पर भी दस्तावेज किया गया


Answer #3

कुछ सिस्टमों में प्रॉक्सी प्रोपर्टीटी को शून्य सेट करने की ज़रूरत है:

Net.WebRequest.DefaultWebProxy.Credentials = System.Net.CredentialCache.DefaultCredentials Dim अनुरोध WebRequest = WebRequest.Create (sRemoteFileURL) अनुरोध के रूप में। Prroxy = कुछ भी नहीं

यह एक बग है।


Answer #4

यह धागा पुराना है, लेकिन मैंने हाल ही में डिफ़ॉल्ट प्रॉक्सी मुद्दे पर ठोकर खाई है और शायद यह दूसरों की मदद करता है।

मैंने एंड्रयू के सुझाव के रूप में कॉन्फ़िगरेशन सेटिंग का उपयोग किया। इसे तैनात करते समय, मेरे ग्राहक को यह कहते हुए एक त्रुटि मिली, कॉन्फ़िगरेशन 'डिफ़ॉल्ट प्रॉक्सी' सेट करने के लिए पर्याप्त अधिकार नहीं थे।

यह नहीं जानते कि मुझे इस कॉन्फ़िगरेशन को सेट करने का अधिकार क्यों नहीं है और इसके बारे में क्या करना है, मैंने अभी इसे हटा दिया है और यह अभी भी काम करता है। तो ऐसा लगता है कि वीएस2013 में यह मुद्दा तय किया गया है।

और जब हम इसमें हैं:

    WebRequest.DefaultWebProxy.Credentials = new NetworkCredential("ProxyUsername", "ProxyPassword");

अपने क्रेडेंशियल्स के साथ डिफ़ॉल्ट प्रॉक्सी का उपयोग करता है। यदि आप प्रॉक्सी का उपयोग न करने के लिए मजबूर करना चाहते हैं तो बस डिफ़ॉल्ट वेबब्राक्सी को शून्य पर सेट करें (हालांकि मुझे नहीं पता कि कोई इसे चाहेगा)।


Answer #5

यह नई सुझाई गई विधि है।

WebRequest.GetSystemWebProxy();




proxy