代理授权:HTTPS的基本标头失败

时间:2011-06-07 07:13:16

标签: c# http-headers webbrowser-control

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工作的地方有更好的替代方案吗?

1 个答案:

答案 0 :(得分:0)

这可能不是您要找的,但您是否考虑过使用HttpWebRequest来完成此任务? HttpWebRequest可以使用WebProxy支持使用NetworkCredentials,因此您无需使用标题。

如果您需要WebBrowser控件来显示页面,也许只需使用它即可。使用HttpWebRequest进行实际转移并在WebBrowser中呈现内容。

供参考:HttpWebRequest& WebProxy