繁体   English   中英

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

[英]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();

resultFresultG返回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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM