2010-08-05 18 views
5

के माध्यम से प्रोग्रामिक रूप से प्रॉक्सी पता, पोर्ट, उपयोगकर्ता, पासवर्ड सेट करें मैं एक छोटा सी # एप्लीकेशन लिख रहा हूं जो WatiN से सहायता के साथ इंटरनेट एक्सप्लोरर का उपयोग कुछ वेबसाइटों के साथ करने के लिए करेगा।विंडोज रजिस्ट्री

हालांकि, इसे प्रॉक्सी का उपयोग करने के लिए समय-समय पर भी आवश्यकता होगी।

मैं Programmatically Set Browser Proxy Settings in C# पर आया हूं, लेकिन यह केवल मुझे प्रॉक्सी पता दर्ज करने में सक्षम बनाता है, और मुझे प्रॉक्सी उपयोगकर्ता नाम और पासवर्ड दर्ज करने की भी आवश्यकता है। मैं उसे कैसे कर सकता हूँ?

नोट:

  • यह कोई फर्क नहीं पड़ता एक समाधान पूरे सिस्टम इंटरनेट सेटिंग्स को परिवर्तित करता है। हालांकि, मैं केवल आईई प्रॉक्सी सेटिंग्स (किसी भी कनेक्शन के लिए) को बदलना पसंद करूंगा।
  • समाधान को IE8 और Windows XP SP3 या उच्चतम के साथ काम करना है।
  • मैं पहले प्रॉक्सी सेटिंग्स को पढ़ने की संभावना रखना चाहता हूं, ताकि बाद में मैं अपने परिवर्तन पूर्ववत कर सकूं।

संपादित

Windows रजिस्ट्री Microsoft.Win32.RegistryKey के माध्यम से सुलभ की मदद से

, मैं इस तरह एक प्रॉक्सी कुछ लागू करने में सक्षम था:

RegistryKey registry = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true); 
registry.SetValue("ProxyEnable", 1); 
registry.SetValue("ProxyServer", "127.0.0.1:8080"); 

लेकिन मैं कैसे एक उपयोगकर्ता नाम निर्दिष्ट कर सकते हैं और प्रॉक्सी सर्वर पर लॉगिन करने के लिए एक पासवर्ड?

मैंने यह भी देखा कि रजिस्ट्री को बदलने के बाद आईई अपने कनेक्शन के लिए प्रॉक्सी विवरण रीफ्रेश नहीं करता है, मैं रजिस्ट्री से अपनी कनेक्शन सेटिंग्स को रीफ्रेश करने के लिए आईई को कैसे ऑर्डर कर सकता हूं?

धन्यवाद

उत्तर

2

IE के लिए, आप एक ही जगह रजिस्ट्री में उपयोग कर सकते हैं। बस ProxyServer = "user: [email protected]: 8080" सेट करें, हालांकि फ़ायरफ़ॉक्स पूरी तरह से इसे अस्वीकार करता है, और कनेक्ट करने का प्रयास नहीं करता है।

+0

जब तक यह आईई पर काम करता है। धन्यवाद। –

+0

बहुत अच्छा .. यह @ माइक एल काम करता है .. लेकिन अगर पासवर्ड में @ # आदि जैसे विशेष वर्ण होते हैं तो हम क्या करेंगे .. तो यह उपयोगकर्ता होना चाहिए: p @ ssword @ 127.0.0.1: 8080 ???? – Mike

1

यहाँ कैसे मैं इसे किया है जब एक प्रॉक्सी के माध्यम से एक वेब सेवा तक पहुंच सकते हैं:

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(targetUrl); 

     WebProxy proxy = new WebProxy(proxyUrl, port); 

     NetworkCredential nwCred = new NetworkCredential(proxyUser, proxyPassword); 

     CredentialCache credCache = new CredentialCache(); 
     credCache.Add(proxy.Address, "Basic", nwCred); 
     credCache.Add(proxy.Address, "Digest", nwCred); 
     credCache.Add(proxy.Address, "Negotiate", nwCred); 
     credCache.Add(proxy.Address, "NTLM", nwCred); 
     proxy.Credentials = credCache; 

     proxy.BypassProxyOnLocal = false; 

     request.Proxy = proxy; 
+0

@ सशक्तिकरण: मुझे नहीं पता कि इससे मेरी मदद कैसे होगी। ध्यान दें कि मेरा एप्लिकेशन वेब से कुछ भी ब्राउज़/अनुरोध नहीं करता है, केवल आईई को ऐसा करने के लिए आदेश देता है, इसलिए मुझे आईई या सिस्टम में प्रॉक्सी सेट करने की आवश्यकता क्यों है। लेकिन किसी भी तरह से धन्यवाद, मेरे आवेदन के अगले संस्करण को निश्चित रूप से कुछ एचटीपी अनुरोध करने की आवश्यकता होगी, यह आसान हो जाएगा। –

+0

@fabio: ओह - क्षमा करें, मैंने सवाल को पर्याप्त रूप से पर्याप्त नहीं पढ़ा। मुझे उपयोगकर्ता नाम और पासवर्ड सेट करने के लिए आईई के इंटरनेट विकल्पों से कोई सेटिंग नहीं है। क्या ये स्वचालित रूप से लॉगिन उपयोगकर्ता के प्रमाण-पत्र द्वारा प्रदान नहीं किए जाते हैं? –

+0

@ सशक्तिकरण: लॉल, आपको अभी भी यह नहीं मिला। मुझे इंटरनेट एक्सप्लोरर/ऑपरेटिव सिस्टम में प्रॉक्सी लागू करने के लिए मेरे सी # ऐप की आवश्यकता है। –

संबंधित मुद्दे