用webbrowser 添加代理时,需要验证的问题
先祝大家[中秋快乐]在webbrowser上用了Wininet.dll的InternetSetOption设置代理,在不用验证的代理服务器上都没问题
但是我现在要连一个需要验证的代理服务器,这样就会弹出用户名密码输入验证框,而我不想弹出这个框让用户输入,我想在程序自动输入和连接
现在我有两个思路:
1:就是在Webbrowser 的页面跳转的时候,修改发送的HTTP Headers ,但是找了很多资料都说Webbrowser发送的Http Headers是不能修改的,是不是不可以修改呢?(如果你有好的建议请告诉我)
2:就是用Wininet.dll的InternetSetOption()设置用户名密码,但是我写了,设置返回是Fasle
代码:
[DllImport("wininet.dll", SetLastError = true)]
private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);
public void ProxyAuth()
{
const int INTERNET_OPTION_PROXY_USERNAME = 43;
const int INTERNET_OPTION_PROXY_PASSWORD = 44;
string username = "user";
string password = "password";
IntPtr intptrUsername = Marshal.StringToHGlobalAnsi(username);
bool uReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_USERNAME, intptrUsername, System.Text.Encoding.ASCII.GetByteCount(username));
IntPtr intptrPassword = Marshal.StringToHGlobalAnsi(password);
bool pReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_PASSWORD, intptrPassword, System.Text.Encoding.ASCII.GetByteCount(password));
}
是不是我这段代码写错了?还是不能这样设置用户名密码?
如果你们还有其他思路,请告之,谢谢。。。 --------------------编程问答-------------------- 帮忙顶先! --------------------编程问答-------------------- http://support.microsoft.com/kb/q226473/ --------------------编程问答-------------------- 我用InternetSetOption设置不要验证的代理已经没问题了
就是要连到要验证的代理服务器时会弹出登陆验证框,我现在就是想不让它弹出这个框,我在程序后面进行自动登陆代理服务器,这样用户只要开这个浏览器(不用用户再登陆代理服务器),就可以直接浏览他想浏览的地址了 --------------------编程问答-------------------- 有可能你那个验证是Windows验证
你这里设置的是代理验证当然不会成功
--------------------编程问答-------------------- 是代理的验证
const int INTERNET_OPTION_PROXY_USERNAME = 43;
const int INTERNET_OPTION_PROXY_PASSWORD = 44;
用这个验证框登陆后,就会在Headers上加一个代理验证信息 --------------------编程问答-------------------- 中秋快乐,帮顶 --------------------编程问答-------------------- 用Wininet.dll设置Webbrowser的代理?很奇怪啊,没试过呢 --------------------编程问答-------------------- 楼主你好,呵呵。又一年中秋,我也遇到了你的这个问题,不知道你当时是怎么解决的,多谢
补充:.NET技术 , C#