[英]Set Proxy Credential in Web Browser Control
我正在研究一个遗留代码,其中应用程序使用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();
resultF
和resultG
返回true
,并且没有错误,但仍可正常使用。 关于这里可能发生什么的任何提示? 我必须调试什么方法?
提前致谢。
我实际上找到了一个可行的解决方案,该解决方案位于标题中带有Proxy-Authentication的导航下:
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.