在Web浏览器控件中设置代理凭据

我正在处理一个遗留代码,其中一个应用程序使用AxSHDocVw.AxWebBrowser而不是 System.Windows.Forms.Control )来打开网页并扩展它以考虑代理。

我在http://www.pinvoke.net/default.aspx/wininet/internetsetoption.html上有以下示例,使用InternetSetOption()来浏览指定的代理并测试它是否有效。

现在的障碍是我尝试了一切,但未能通过以下代码传递用户名和密码:

 //-- Set Proxy Username bool resultF = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_USERNAME, username, username.Length+1); var errorF = Marshal.GetLastWin32Error(); //-- Set Proxy Password bool resultG = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_PASSWORD, password, password.Length+1); var errorG = Marshal.GetLastWin32Error(); 

resultFresultG返回true并且没有错误但它仍然有效。 有关这里可能发生的事情的暗示吗? 我有什么方法来调试这个?

提前致谢。

我实际上找到了一个可行的解决方案,在导航中使用代理身份validation在标题中:

 var credentialStringValue = "user:pass"; var credentialByteArray = ASCIIEncoding.ASCII.GetBytes(credentialStringValue); var credentialBase64String = Convert.ToBase64String(credentialByteArray); Object nullObject = 0; Object nullObjectString = ""; Object authObject = string.Format("Proxy-Authorization: Basic {0}{1}", credentialBase64String, Environment.NewLine); browser.Navigate(args.Url, ref nullObject, ref nullObject, ref nullObjectString, ref authObject); 

browser在哪里:

 public AxWebBrowser browser;