“WebClient”类(也包括 ClickOnce)可以使用默认代理设置(例如放入 application.config),但是:
- 用户名/密码从何而来?(我在 XML 配置中看不到设置 - 见下文)。
- 应用程序是否可以配置为手动提示用户输入用户名/密码
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;
}
}