Класс "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;
}
}