使用“默认代理”时,用户名/密码来自哪里?

Gre*_*reg 5 .net proxy defaultproxy defaultnetworkcredentials winforms

“WebClient”类(还有 ClickOnce)可以使用默认代理设置(例如放入 application.config 中),但是:

\n\n
    \n
  1. 用户名/密码从哪里来?(我看不到 XML 配置中的设置 - 见下文)。
  2. \n
  3. 应用程序是否可以配置为手动提示用户输入用户名/密码
  4. \n
\n\n

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

\n\n
<defaultProxy\nenabled="true|false"\nuseDefaultCredentials="true|false"\n<bypasslist> \xe2\x80\xa6 </bypasslist>\n<proxy> \xe2\x80\xa6 </proxy>\n<module> \xe2\x80\xa6 </module>\n/>\n
Run Code Online (Sandbox Code Playgroud)\n\n

附言。 我刚刚使用以下设置进行了测试,并确认用户名/密码并非来自成功登录的 IE 会话。

\n\n

因此,悬而未决的问题是用户名/密码从哪里来?或者是否必须在自定义应用程序中以编程方式提供,在这种情况下 ClickOnce 会发生什么?(这似乎没有启动任何对话框来允许用户提供用户名/密码)

\n\n
<?xml version="1.0" encoding="utf-8" ?>\n<configuration>\n    <system.net>\n      <defaultProxy enabled="true" useDefaultCredentials="false">\n        <bypasslist>\n          <add address="localhost" />\n        </bypasslist>\n        <proxy usesystemdefault="True" proxyaddress="http://proxy1.health.qld.gov.au:80/" bypassonlocal="False" />\n      </defaultProxy>\n    </system.net>\n</configuration>\n\n\n\nprivate void button2_Click(object sender, EventArgs e)\n{\n    Cursor.Current = Cursors.WaitCursor;\n    try\n    {\n        var wc = new WebClient();\n        var str = wc.DownloadString(textBox1.Text);\n        MessageBox.Show("String = " + str);\n    } \n    finally\n    {\n        Cursor.Current = Cursors.Default;\n\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Tim*_*vis 2

凭据来自您的网络设置。您可以轻松地在代码中手动设置它们,只需使用 WebProxy 类即可。

WebProxy proxy = new WebProxy("http://yourproxyserveraddress");
NetworkCredential cred = new NetworkCredential("user","password","domain");
proxy.Credentials = cred;
HttpWebRequest.DefaultWebProxy = proxy;
Run Code Online (Sandbox Code Playgroud)