Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically Set Proxy Address, Port, Username, Password

Tags:

c#

.net

proxy

Hi I need to set proxy address of IE programmatically

Earlier I used to use this RedTomahawk.TORActivator but it doesnot gives an option to set those proxies which requires username and password.

How can we set those proxies which needs username and passwords

Please provide examples like

void Setproxy(string ip,string port,string uname,string pwd) { ///Code here }

like image 338
Ankush Roy Avatar asked Nov 24 '10 09:11

Ankush Roy


1 Answers

You could P/Invoke the WinHttpSetDefaultProxyConfiguration function.


UPDATE:

Including example as requested:

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct WINHTTP_PROXY_INFO
{
    public AccessType AccessType;
    public string Proxy;
    public string Bypass;
}

public enum AccessType
{
    DefaultProxy = 0,
    NamedProxy = 3,
    NoProxy = 1
}

class Program
{
    [DllImport("winhttp.dll", CharSet = CharSet.Unicode, SetLastError = true)]
    public static extern bool WinHttpSetDefaultProxyConfiguration(ref WINHTTP_PROXY_INFO config);

    static void Main()
    {
        var config = new WINHTTP_PROXY_INFO();
        config.AccessType = AccessType.NamedProxy;
        config.Proxy = "http://proxy.yourcompany.com:8080";
        config.Bypass = "intranet.com";

        var result = WinHttpSetDefaultProxyConfiguration(ref config);
        if (!result)
        {
            throw new Win32Exception(Marshal.GetLastWin32Error());
        }
        else
        {
            Console.WriteLine("Successfully modified proxy settings");
        }
    }
}
like image 144
Darin Dimitrov Avatar answered Oct 02 '22 08:10

Darin Dimitrov