来自文档:“您可以将浏览器实例配置为使用自己的代理设置。当您修改浏览器代理设置时,您不会修改系统全局代理设置。”
我可以使用具有不同代理设置的多个浏览器吗?
如我所见,代理设置在所有浏览器实例上都是全局的,我无法单独关闭/打开它(例如在 loadurl 方法之前)
1、我用代理设置创建浏览器实例
2、我创建另一个没有任何代理设置的浏览器实例(directproxy)
3,我点击第一个浏览器实例中的链接(或调用 loadurl)但它不起作用,代理设置可能被覆盖,身份验证不起作用
4,我尝试重置代理设置,但它也不起作用
public void LoadURL(string link)
{
Browser.Context.ProxyConfig = Forms.DotNetBrowserForm.noProxyContext;
if (Utils.UseProxy(link))
{
Browser.Context.ProxyConfig = Forms.DotNetBrowserForm.proxyContext;
Browser.Context.NetworkService.NetworkDelegate = new MyNetworkDelegate();
}
..... MyNetworkDelegate() 中的 OnAuthRequired(AuthRequiredParams parameters) 方法;不会再次被调用(仅在没有其他浏览器实例且没有代理设置的情况下第一次)
那么交易是什么?这怎么会发生?具有不同浏览器上下文的新浏览器实例如何覆盖先前创建的浏览器实例,为什么我不能重置其参数?
编辑:(浏览器上下文不一样)
if (Utils.UseProxy(bookiename))
{
String dataDir = Path.GetFullPath("chromium-data");
BrowserContextParams contextParams = new BrowserContextParams(dataDir);
String proxyRules = string.Format("http={0};https={0};ftp={0};socks={0}", Properties.Settings.Default.proxyserver);
contextParams.ProxyConfig = new CustomProxyConfig(proxyRules);
browser = BrowserFactory.Create(new BrowserContext(contextParams));
browser.Context.NetworkService.NetworkDelegate = new MyNetworkDelegate();
}
else
{
BrowserContextParams contextParams = new BrowserContextParams("CookieStorage/" + bookiename + Guid.NewGuid());
contextParams.ProxyConfig = new DirectProxyConfig();
browser = BrowserFactory.Create(new BrowserContext(contextParams));
}
BrowserView browserView = new WinFormsBrowserView(browser);