2010-03-10 94 views
4

的「WebClient的」類(和ClickOnce的也)可以使用默認的代理服務器設置(例如放application.config),但是:使用「默認代理」時,用戶名/密碼來自哪裏?

  1. 哪裏的用戶名/密碼從何而來? (我無法看到XML配置中的設置 - 請參閱下文)。
  2. 可以在應用程序被配置成手動提示用戶輸入用戶名/密碼

http://msdn.microsoft.com/en-us/library/kd3cf2ex.aspx

<defaultProxy 
enabled="true|false" 
useDefaultCredentials="true|false" 
<bypasslist> … </bypasslist> 
<proxy> … </proxy> 
<module> … </module> 
/> 

PS。我剛剛使用以下設置進行了測試,並確認用戶名/密碼不是來自成功登錄的IE會話。

未解決的問題是,用戶名/密碼從哪裏來?還是必須在自定義應用程序中以編程方式提供,在這種情況下,ClickOnce會發生什麼情況? (似乎不會啓動任何對話框以允許用戶提供用戶名/密碼)

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.net> 
     <defaultProxy enabled="true" useDefaultCredentials="false"> 
     <bypasslist> 
      <add address="localhost" /> 
     </bypasslist> 
     <proxy usesystemdefault="True" proxyaddress="http://proxy1.health.qld.gov.au:80/" bypassonlocal="False" /> 
     </defaultProxy> 
    </system.net> 
</configuration> 



private void button2_Click(object sender, EventArgs e) 
{ 
    Cursor.Current = Cursors.WaitCursor; 
    try 
    { 
     var wc = new WebClient(); 
     var str = wc.DownloadString(textBox1.Text); 
     MessageBox.Show("String = " + str); 
    } 
    finally 
    { 
     Cursor.Current = Cursors.Default; 

    } 
} 

回答

2

憑據來自您的網絡設置。您可以使用代碼輕鬆地手動設置它們,只需使用WebProxy類即可。

WebProxy proxy = new WebProxy("http://yourproxyserveraddress"); 
NetworkCredential cred = new NetworkCredential("user","password","domain"); 
proxy.Credentials = cred; 
HttpWebRequest.DefaultWebProxy = proxy; 
+0

謝謝 - 我還可以問,如果clickonce不是我的應用程序訪問它們時,它們會來自哪裏?所以我想這個問題是你的意思是網絡設置?這是Windows登錄? (問題我有clickonce是該公司的代理服務器配置/憑據是獨立於任何其他憑據使用) – Greg 2010-03-10 04:37:28

+0

我不知道你是什麼意思的ClickOnce的情況下,問題/設置是誰執行相同的人代碼訪問的i /網絡。您可以在Internet連接對話框中找到您的代理設置,如果您使用Windows 7或Vista或Internet Explorer工具 - > Internet選項,則可以通過GodMode(google it)輕鬆找到它。 – 2010-03-10 07:09:10

+0

但是這些設置不包括用戶名/密碼嗎?即我不知道如何設置用戶名/密碼oneclick(但也許這引發了一個單獨的問題) – Greg 2010-03-10 09:00:56

相關問題