WebBrowser控件具有自动代理登录功能

Yo *_*mma 9 c# authentication proxy webbrowser-control winforms

我有一个包含WebBrowser控件的Windows窗体应用程序.这个想法是为了在WebBrowser没有用户交互的情况下浏览网站.在WebBrowser通过代理访问互联网.

我可以在代理上看到请求,但是由于代理身份验证失败而被拒绝.

我添加了Proxy-Authorization: Basic标题.这适用于普通的http页面,但它似乎不起作用https:

var credentialStringValue = "proxyUser:proxyPassword";
byte[] credentialByteArray = ASCIIEncoding.ASCII.GetBytes(credentialStringValue);
var credentialBase64String = Convert.ToBase64String(credentialByteArray);

string Headers = string.Format("Proxy-Authorization: Basic {0}{1}", credentialBase64String, Environment.NewLine);

ws.Navigate(url,TargetFrameName,PostData,Headers);
Run Code Online (Sandbox Code Playgroud)

在哪里ws等于new WebBrowser().凭据是正确的,因为它在我手动执行时有效.

有关如何以编程方式验证代理凭据的任何想法?

aba*_*hev 3

 // do what you want with proxy class
WebProxy webProxy = new WebProxy(host, port)
{
    Credentials = ...
}

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://example.com");
webRequest.Proxy = webProxy;

HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
Stream receiveStream = response.GetResponseStream();

WebBrowser webBrowser = new WebBrowser();
webBrowser.DocumentStream = receiveStream; 
Run Code Online (Sandbox Code Playgroud)

  • 这不是OP所要求的。他想通过Proxy来运行整个WebBrowser。您是否建议他重写所有内容以按照您建议的方式工作?他也可以控制。 (2认同)