Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

when using "default proxy" where does the username/password come from?

The "WebClient" class (and ClickOnce also) can use default proxy settings (e.g. put in application.config), however:

  1. Where does the username / password come from? (I can't see a setting in the XML config - see below).
  2. Can the application be configured to manual prompt the user for the username/password

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

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

PS. I've just been testing with the following below setup and confirmed that the Username/Password does not come from a successful logged on IE session.

Outstanding question is therefore where would the username/password come from? Or does it have to be programmatically supplied within the custom application, in which case what happens with ClickOnce then? (which doesn't seem to launch any dialog to allow a user to supply the username/password)

<?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;

    }
}
like image 444
Greg Avatar asked Nov 06 '22 15:11

Greg


1 Answers

The credentials come from your network settings. You can easily set them manually in code, simply use the WebProxy class.

WebProxy proxy = new WebProxy("http://yourproxyserveraddress");
NetworkCredential cred = new NetworkCredential("user","password","domain");
proxy.Credentials = cred;
HttpWebRequest.DefaultWebProxy = proxy;
like image 72
Tim Jarvis Avatar answered Nov 15 '22 05:11

Tim Jarvis