var credentialStringValue = user + ":" + pass;
var credentialByteArray = ASCIIEncoding.ASCII.GetBytes(credentialStringValue);
var credentialBase64String = Convert.ToBase64String(credentialByteArray);
string authObject = string.Format("Proxy-Authorization: Basic {0}{1}", credentialBase64String, Environment.NewLine);
System.Windows.Forms.WebBrowser _WebBrowser = new System.Windows.Forms.WebBrowser();
_WebBrowser.Navigate("http://www.google.com", string.Empty, null, authObject);
上面的代码用于将代理凭据传递到.NET WebBrowser控件。当连接到正常的HTTP URL时,它就像一个魅力,但当连接到SSL时,它失败了。原因是什么?SSL工作的地方有更好的替代方案吗?
这可能不是您想要的,但您是否考虑过使用HttpWebRequest
来完成此任务?HttpWebRequest
可以使用一个支持使用NetworkCredentials
的WebProxy
,这样就不必乱处理头了。
如果您需要WebBrowser
控件来显示页面,也许只需使用它即可。使用HttpWebRequest
进行实际传输并呈现WebBrowser
中的内容。
参考:HttpWebRequest&WebProxy