c# - 具有自动代理登录的 WebBrowser 控件

标签 c# winforms authentication proxy webbrowser-control

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

我可以看到请求通过代理,但由于代理身份验证失败,它们被拒绝了。

我添加了 Proxy-Authorization: Basic header 。这适用于普通的 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);

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

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

最佳答案

 // 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; 

关于c# - 具有自动代理登录的 WebBrowser 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6184675/

相关文章:

c# - SqlDependency.Start() 错误 : "Cannot find the specified user ' owner'"

c# - 混合 knockout 和 Razor 变量

c# - 为什么我必须显式调用 GC 收集?

c# - 是否可以使用 WinForms 中的设计器从不同的项目访问资源?

laravel - 如何在 Laravel 中验证 API 路由的 Vue.js/Axios 请求

ios - 存储用于离线身份验证的 token

php - iOS 中的身份验证 - 你能使用 cookies/session 吗?

c# - 您如何将与集合中其他项目具有依赖性的项目分组?

c# - 异常被忽略

c# - 保存多个复选框的状态并在应用程序启动时重新加载它们