【发布时间】:2011-05-15 00:08:06
【问题描述】:
您好,我需要以编程方式设置 IE 的代理地址
之前我用过这个RedTomahawk.TORActivator 但它没有提供设置需要用户名和密码的代理的选项。
我们如何设置那些需要用户名和密码的代理
请提供类似的例子
void Setproxy(string ip,string port,string uname,string pwd)
{
///Code here
}
【问题讨论】:
您好,我需要以编程方式设置 IE 的代理地址
之前我用过这个RedTomahawk.TORActivator 但它没有提供设置需要用户名和密码的代理的选项。
我们如何设置那些需要用户名和密码的代理
请提供类似的例子
void Setproxy(string ip,string port,string uname,string pwd)
{
///Code here
}
【问题讨论】:
您可以 P/Invoke WinHttpSetDefaultProxyConfiguration 函数。
更新:
包括要求的示例:
[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");
}
}
}
【讨论】:
http://username:password@yourproxy.com:8080。如果它是集成的 Windows 身份验证,它将取决于运行您的程序的用户。