Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Proxy Automatic Configuration from IE Settings in .Net

Tags:

c#

.net

proxy

pac

I'm having trouble getting Proxy Automatic Configuration (PAC) in IE options to work as expected using .Net WebRequest.

According to this article:
Proxy Detection Take the Burden Off Users with Automatic Configuration in .NET

The system proxy should be set by default with to each WebRequest.

That's how the proxy.js pac file looks like:

function FindProxyForURL(url, host)
{
  return "PROXY ProxyServerName:3118; DIRECT;";
}

I also took a look at this post: How should I set the default proxy to use default credentials?

Which suggests to add this in the app.config:

<system.net>
  <defaultProxy useDefaultCredentials="true" />
</system.net>

Adding this did not help.

I created a small console application just to test this out.. here it is:

static void Main(string[] args)
{
    HttpWebRequest request = null;
    try
    {               
        String resolvedAddress = WebRequest.DefaultWebProxy.GetProxy(new Uri("http://www.google.com")).ToString();
        Console.WriteLine("Proxy for address is: " + resolvedAddress);

        Uri m_URLToTest = new Uri("http://www.google.com");
        request = WebRequest.Create(m_URLToTest) as HttpWebRequest;
        request.Method = "GET";
        request.KeepAlive = false;
        request.Timeout = 5000;
        request.Proxy = WebRequest.DefaultWebProxy;
        WebResponse response = request.GetResponse();
        StreamReader reader = new StreamReader(response.GetResponseStream());
        string message = reader.ReadToEnd();
    }
    catch (Exception ex)
    {
        Console.Write("Exception");
    }

}

The output: Proxy for address is http://www.google.com

instead of Proxy for address is ProxyServerName:3118

It happens only when using auto configuration script...

Did I miss anything? Please help!

like image 936
bondar Avatar asked Nov 25 '12 15:11

bondar


People also ask

How do I create an Automatic proxy configuration URL?

The proxy auto-config file defines how web browsers and other user agents can automatically choose the appropriate proxy server (access method) for fetching a given URL. user_pref("network. proxy. autoconfig_url", "http://us2.indexdata.com:9005/id/cf.pac");

How do I configure proxy server settings in IE or by using group policy?

Right-click Internet Settings, click New and then click Internet Explorer 10. Click LAN settings on the Connections tab, select the Use a proxy server for your LAN check box. Set the proxy, for example, Proxy1, Port: 80, and then click OK.


1 Answers

Found the solution!

It is really important that the mime type of the PAC file would be: [Content-type: application/x-ns-proxy-autoconfig]

Other mime types might not work.

Make sure using fiddler2 (with cache disabled) that the mime type is appropriate. Some configurations might show Content-Type: text/plain which is bad.

like image 128
bondar Avatar answered Sep 18 '22 12:09

bondar