5

ただし、「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;

    }
}
4

2 に答える 2

2

資格情報は、ネットワーク設定から取得されます。WebProxy クラスを使用するだけで、コードで手動で簡単に設定できます。

WebProxy proxy = new WebProxy("http://yourproxyserveraddress");
NetworkCredential cred = new NetworkCredential("user","password","domain");
proxy.Credentials = cred;
HttpWebRequest.DefaultWebProxy = proxy;
于 2010-03-10T02:53:10.917 に答える