Programmatically Set Proxy Address, Port, Username

2019-03-20 05:06发布

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 }

标签: c# .net proxy
1条回答
Lonely孤独者°
2楼-- · 2019-03-20 05:26

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");
        }
    }
}
查看更多
登录 后发表回答