Dotnetbrowser在多个浏览器实例中的不同代理设置

时间:2017-04-09 10:57:35

标签: dotnetbrowser

来自文档: "您可以配置浏览器实例以使用其自己的代理设置。修改浏览器代理设置时,不要修改系统全局代理设置。"

我可以使用具有不同代理设置的多个浏览器吗?

正如我所看到的,代理设置在所有浏览器实例上都是全局的,我不能分别关闭/打开它(例如在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参数)方法;不会再次调用(仅在第一次没有其他没有代理设置的浏览器实例时)

那么交易是什么?怎么会发生这种情况? 具有不同browsercontext的新浏览器实例如何覆盖先前创建的浏览器实例以及为什么我无法重置其参数?

编辑:( browsercontexts不一样)

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

1 个答案:

答案 0 :(得分:0)

我很高兴地通知您,我们刚刚发布了 DotNetBrowser 1.10 。上述问题已得到解决。欢迎您下载新版本:https://www.teamdev.com/dotnetbrowser