Proxy

Este documento descreve como a funcionalidade de proxy funciona no DotNetBrowser, nomeadamente como configurar definições de proxy e tratar pedidos de autenticação de proxy.

O DotNetBrowser usa as configurações de proxy do sistema por padrão.

Proxy do sistema

O DotNetBrowser utiliza as mesmas definições que o Microsoft Internet Explorer.

Configurações

Se você não pretende utilizar as definições de proxy do sistema, pode configurar cada Profile com as suas próprias definições de proxy utilizando Proxy:

IProxy proxy = profile.Proxy;
Dim proxy As IProxy = profile.Proxy

Se você utilizar o método Engine.Proxy(), você obtém a instância Proxy associada ao perfil predefinido.

Se você pretende dizer à biblioteca para voltar a utilizar as definições de proxy do sistema, chame:

engine.Profiles.Default.Proxy.Settings = new SystemProxySettings();
engine.Profiles.Default.Proxy.Settings = New SystemProxySettings()

As definições de proxy são armazenadas na pasta User Data. Se você configurar o Engine para utilizar uma pasta de dados do usuário especificado, as definições de proxy serão salvas e restauradas da próxima vez que a criar.

Direto

A conexão não utiliza o servidor proxy nesta configuração:

engine.Profiles.Default.Proxy.Settings = new DirectProxySettings();
engine.Profiles.Default.Proxy.Settings = New DirectProxySettings()

Deteção automática

As definições de proxy são detectadas automaticamente nesta configuração:

engine.Profiles.Default.Proxy.Settings = new AutoDetectProxySettings();
engine.Profiles.Default.Proxy.Settings = New AutoDetectProxySettings()

Definições de proxy personalizadas

Você pode fornecer definições de proxy personalizadas para os protocolos HTTP, HTTPS e FTP:

string proxyRules = "http=foo:80;https=foo:80;ftp=foo:80;socks=foo:80";
string exceptions = "<local>"; // ignora o servidor proxy para páginas Web locais.
engine.Profiles.Default.Proxy.Settings = new CustomProxySettings(proxyRules, exceptions);
Dim proxyRules As String = "http=foo:80;https=foo:80;ftp=foo:80;socks=foo:80"
Dim exceptions As String = "<local>" ' ignora o servidor proxy para páginas Web locais.
engine.Profiles.Default.Proxy.Settings = New CustomProxySettings(proxyRules, exceptions)

O endereço IP do servidor proxy também é aceitável nas regras. Por exemplo, http=127.0.0.1:80.

Exemplos de regras proxy:

  • http=foopy:80;ftp=foopy2 significa proxy HTTP foopy:80 para http:// URLs e proxy HTTP foopy2:80 para ftp:// URLs;
  • foopy:80 significa proxy HTTP foopy:80 para todos os URLs;
  • socks4://foopy significa proxy SOCKS v4 foopy:1080 para todos os URLs.

O formato das exceções pode ser o seguinte:

  • [ URL_SCHEME "://" ] HOSTNAME_PATTERN [ ":" <port>]

    Exemplos:

    foobar.com
    *foobar.com
    *.foobar.com
    *foobar.com:99
    https://x.*.y.com:99
    
  • "." HOSTNAME_SUFFIX_PATTERN [ ":" PORT ]

    Exemplos:

    .google.com
    .com
    http://.google.com
    
  • [ SCHEME "://" ] IP_LITERAL [ ":" PORT ]

    Exemplos:

    127.0.1
    [0:0::1]
    [::1]
    http://[::1]:99
    
  • IP_LITERAL "/" PREFIX_LENGHT_IN_BITS.

    Exemplos:

    192.168.1.1/16
    fefe:13::abc/33
    
  • "<local>". Corresponde aos endereços locais. <local> significa que o anfitrião corresponde a 127.0.0.1, ::1, e localhost.

Se você precisa fornecer várias regras de exceção, pode separá-las por vírgula, por exemplo: *foobar.com,.google.com,<local>.

PAC

As definições de proxy são recebidas do arquivo de configuração automática de proxy (PAC). Você deve fornecer um URL válido para o arquivo PAC necessário:

engine.Profiles.Default.Proxy.Settings = new PacProxySettings("<pac-file-url>");
engine.Profiles.Default.Proxy.Settings = New PacProxySettings("<pac-file-url>")

O URL do ficheiro PAC tem de ser um endereço http:// válido. Não é possível fornecer um caminho para um arquivo*.pac armazenado num sistema de arquivos local. O nome do arquivo PAC deve ter a extensão pac, por exemplo, http://my-site.com/proxy.pac. O arquivo pac deve ser servido com o tipo mime application/x-ns-proxy-autoconfig num servidor web.

Consulte a seção PAC Script Error para obter mais informações.

Autenticação

O DotNetBrowser suporta a autenticação proxy. Consulte a seção Autenticação para obter mais informações.

Múltiplos proxies

Para utilizar vários servidores proxy na mesma aplicação .NET, crie uma instância separada do IEngine para cada proxy. Todas as instâncias do IBrowser ligadas ao mesmo IEngine partilharão as definições de proxy.

Go Top