2010-08-05 21 views
5

ben WatiN yardımıyla, bir çift web siteleri etkileşim Internet Explorer kullanmanız gerekir küçük bir C# uygulaması yazıyorum düşünce Şifre. Bununla birlikte, bir proxy kullanmak için zaman zaman da gerekli olacaktır. Programlı Seti Proxy Adresi, Port, Kullanıcı, Windows Kayıt

Ben Programmatically Set Browser Proxy Settings in C# karşılaştım, ama bu sadece bir proxy adresi girmek için beni tanır, ben de bir proxy kullanıcı adı ve şifre girmeniz gerekir. Bunu nasıl yapabilirim?

Not:

  • bir çözüm tüm sistemin İnternet ayarlarının değiştirirse önemli değildir. Ancak, yalnızca IE proxy ayarlarını değiştirmeyi tercih ederim (herhangi bir bağlantı için).
  • Çözüm, IE8 ve Windows XP SP3 veya üstü ile çalışmalıdır.
  • İlk önce Proxy ayarlarını okuma olasılığım olsun, daha sonra değişikliklerimi geri alabilirim. Microsoft.Win32.RegistryKey üzerinden erişilebilen Windows Kayıt yardımıyla DÜZENLEME

, ben böyle bir proxy şey uygulamak başardı:

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

Ama nasıl ben bir kullanıcı adı belirtebilirsiniz ve proxy sunucusunda oturum açmak için bir parola mı?

Ayrıca, kayıt defterini değiştirildikten sonra IE'nin bağlantılarının Proxy ayrıntılarını yenilemediğini de fark ettim. IE'nin bağlantı ayarlarını kayıt defterindeki yenilemesini nasıl sipariş edebilirim? İşte bir proxy üzerinden bir web hizmeti erişirken bunu yaptık nasıl

Teşekkür

cevap

2

IE için, kayıt defterinde aynı yeri kullanabilirsiniz. Sadece ProxyServer = "kullanıcı: [email protected]: 8080" ayarını yapın, ancak firefox bunu tamamen reddeder ve bağlanmayı denemez.

+0

Uzun süredir IE üzerinde çalışıyor. Teşekkürler. –

+0

çok güzel .. @Mike L .. çalışıyor ama şifre # # gibi özel karakterler içeriyorsa ne yapacağız .. o zaman kullanıcı olmalı: 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

@ebpower: Bunun bana nasıl yardımcı olacağını anlamıyorum. Uygulamamın web'den herhangi bir şey istemediğini veya talep etmediğini, yalnızca IE'nin bunu yapmasını istediğini, neden IE'ye veya sisteme bir proxy ayarlamam gerektiğini unutmayın. Ancak, herhangi bir şekilde, başvurumun bir sonraki sürümünde bazı Http isteklerini gerçekleştirmesi gerekecek, bu da işe yarayacak. –

+0

@fabio: Oops - Üzgünüm, soruyu yeterince okumamıştım. IE'nin internet seçeneklerinden, kullanıcı adı ve parola ayarlamak için bir ayar olmadığını biliyorum. Bunlar, giriş kullanıcılarının kimlik bilgileri tarafından otomatik olarak sağlanmıyor mu? –

+0

@ebpower: Lol, hala anlamadın. Internet Explorer/Operatif Sisteme bir Proxy uygulamak için C# uygulamasına ihtiyacım var. –

İlgili konular