The remote server returned error: (407) Proxy Authentication Required
Asked Answered
E

3

8

I use this code with .NET 3.5 and receive error "The remote server returned an error: (407) Proxy Authentication Required."

using (WebClient client = new WebClient())
{
    WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;

    try
    {
        string webPageStr = client.DownloadString(URL);
        Console.WriteLine("OK");
    }
    catch (Exception ex)
    {
        Console.WriteLine("FAIL");
        Console.WriteLine(ex.Message);
    }
}

However, this code works smoothly with .NET 4.0 as this line is sufficient to pass the proxy authentication while it is not for .NET 3.5.

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;

Therefore, I tried many other ways to solve this problem but none of them works:

1) Replace CredentialCache.DefaultCredentials line with

WebRequest.DefaultWebProxy.Credentials = new NetworkCredential(user, password, domain);

2) Create new proxy object

IWebProxy proxy = new WebProxy(proxyUrl, port);
proxy.Credentials = new NetworkCredential(user, pass, domain);
client.Proxy = proxy;
client.Credentials = new NetworkCredential(user, pass, domain);

3) Add this line

client.UseDefaultCredentials = true;

4) Use HttpWebRequest instead of WebClient and repeat every procedure above. This is sample code.

HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest;
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Credentials = new NetworkCredential(user, pass, domain);
webRequest.Proxy.Credentials = new NetworkCredential(user, pass, domain);

try
{
    webRequest.GetResponse();
    Console.WriteLine("OK");
}
catch (Exception ex)
{
    Console.WriteLine("FAIL");
    Console.WriteLine(ex.Message);
}

I feel like I come to a dead end as I have to use .NET 3.5. There must be difference between these two .NET versions that I do not know. Thank you very much in advance.

Enshroud answered 11/5, 2014 at 8:13 Comment(1)
Ever find a 3.5 solution? I'm running into same thing, 4.0 update looks like only option.Excreta
M
11

Just add this to config

 <system.net>
      <defaultProxy useDefaultCredentials="true" >
      </defaultProxy>
   </system.net>
Maura answered 26/5, 2015 at 5:59 Comment(0)
U
2

I've had this issue with Visual Studio solutions before. This helped me:

Open IE. Go to Tools -> Internet Options. Click on the Connections tab, then the LAN Settings button. Uncheck the "Automatically detect settings".

Uprear answered 7/4, 2016 at 21:53 Comment(0)
M
1

Sometimes restarting Visual Studio resolves this issue.

Mm answered 16/10, 2019 at 12:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.