Introdução
Instalação
Guias
- Engine
- Perfil
- Navegador
- BrowserView
- Navegação
- Conteúdo
- Menu de contexto
- DOM
- JavaScript
- Pop-ups
- Diálogos
- Downloads
- Chrome extensions
- Rede
- Cache
- Cookies
- Proxy
- Autenticação
- Permissões
- Plugins
- Impressão
- Senhas
- Perfis de dados do usuário
- Cartões de crédito
- Mídia
- Zoom
- Corretor ortográfico
- Implantação
- Chromium
Resolução de problemas
- Registro
- Exceções comuns
- A aplicação não termina
- O vídeo não é reproduzido
- Não é possível iniciar sessão na conta Google
- Os dados do usuário não são armazenados
- Esquema de cores
- Falha no início
- Início lento no Windows
- Aplicação .NET que não responde
- Encerramento inesperado do processo Chromium
- Comportamento inesperado
- Fim do suporte do Windows 7/8/8.1
Migração
Autenticação
Este guia fornece a lista de tipos de autenticação suportados e descreve como lidar com vários pedidos de autenticação.
Autenticação Proxy, Básica, Digest e NTLM
Para tratar a autenticação Proxy, Basic, Digest ou NTLM, utilize o AuthenticateHandler
. Você pode fornecer o nome de usuário e a senha necessários de forma programática, apresentar um pedido de nome de usuário/senha ou simplesmente cancelar um pedido de autenticação.
Para verificar se o pedido de autenticação é emitido por um servidor proxy, utilize a propriedade AuthenticateParameters.IsProxy
. Ver o exemplo de código abaixo:
network.AuthenticateHandler = new Handler<AuthenticateParameters, AuthenticateResponse>(p =>
{
if (p.IsProxy)
{
// Este pedido de autenticação é emitido por um servidor proxy.
}
// ...
};
network.AuthenticateHandler =
New Handler(Of AuthenticateParameters, AuthenticateResponse)(Function(p)
If p.IsProxy Then
' Este pedido de autenticação é emitido por um servidor proxy.
End If
' ...
End Function)
O seguinte exemplo de código demonstra como fornecer as credenciais necessárias:
network.AuthenticateHandler = new Handler<AuthenticateParameters, AuthenticateResponse>(p =>
AuthenticateResponse.Continue("<username>", "<password>"));
network.AuthenticateHandler =
New Handler(Of AuthenticateParameters, AuthenticateResponse)(Function(p)
Return AuthenticateResponse.Continue("<username>", "<password>")
End Function)
Para cancelar o pedido de autenticação, utilize a seguinte abordagem:
network.AuthenticateHandler = new Handler<AuthenticateParameters, AuthenticateResponse>(p =>
AuthenticateResponse.Cancel());
network.AuthenticateHandler =
New Handler(Of AuthenticateParameters, AuthenticateResponse)(Function(p)
Return AuthenticateResponse.Cancel()
End Function)
Certificado de cliente HTTPS
No início de uma sessão SSL ou TLS, o servidor Web pode exigir que a aplicação cliente apresente um certificado de cliente para autenticação. Ao receber o certificado, o servidor o utiliza para identificar a fonte do certificado e determinar se o cliente deve ter acesso ao mesmo.
Se o servidor Web estiver ativado com a autenticação do certificado de cliente, apenas os usuários que tentarem estabelecer ligação a partir dos clientes com certificados de cliente válidos serão bem sucedidos.
Por padrão, o DotNetBrowser cancela todos os certificados. Para efetuar a autenticação e selecionar o certificado de cliente pretendido, utilize o SelectCertificateHandler
. Você pode indicar ao servidor Web qual deles deve ser utilizado:
// Seleciona o último certificado de cliente na lista de certificados de cliente
// disponíveis.
browser.SelectCertificateHandler =
new Handler<SelectCertificateParameters, SelectCertificateResponse>(p =>
{
return SelectCertificateResponse.Select(p.Certificates.Count() - 1);
});
' Seleciona o último certificado de cliente na lista de certificados de cliente
' disponíveis.
browser.SelectCertificateHandler =
New Handler(Of SelectCertificateParameters, SelectCertificateResponse)(Function(p)
Return SelectCertificateResponse.Select(p.Certificates.Count() - 1)
End Function)
Também é possível apresentar uma caixa de diálogo para selecionar os certificados de cliente disponíveis necessários.
Para cancelar a autenticação de um certificado de cliente, utilize a seguinte abordagem:
browser.SelectCertificateHandler =
new Handler<SelectCertificateParameters, SelectCertificateResponse>(p =>
{
return SelectCertificateResponse.Cancel();
});
browser.SelectCertificateHandler =
New Handler(Of SelectCertificateParameters, SelectCertificateResponse)(Function(p)
Return SelectCertificateResponse.Cancel()
End Function)
Certificado de cliente personalizado
O DotNetBrowser permite selecionar um certificado de cliente personalizado que não está instalado e, como resultado, não está disponível na lista fornecida dos certificados de cliente. O exemplo seguinte demonstra como selecionar um certificado de cliente personalizado:
string clientCertFile = "<cert-file>.pfx";
string clientCertPassword = "<cert-password>";
// ...
X509Certificate2 certificate = new X509Certificate2(Path.GetFullPath(clientCertFile),
clientCertPassword,
X509KeyStorageFlags.Exportable);
Certificate cert = new Certificate(certificate);
browser.SelectCertificateHandler
= new Handler<SelectCertificateParameters, SelectCertificateResponse>(p =>
{
return SelectCertificateResponse.Select(cert);
});
Dim clientCertFile As String = "<cert-file>.pfx"
Dim clientCertPassword As String = "<cert-password>"
' ...
Dim certificate As New X509Certificate2(Path.GetFullPath(clientCertFile),
clientCertPassword,
X509KeyStorageFlags.Exportable)
Dim cert As New Certificate(certificate)
browser.SelectCertificateHandler =
New Handler(Of SelectCertificateParameters, SelectCertificateResponse)(Function(p)
Return SelectCertificateResponse.Select(cert)
End Function)
No exemplo de código acima, um certificado de cliente personalizado é carregado a partir de <cert-file>
utilizando o keystore PKCS12 e <cert-password>
, e é criado um Certificado
com este certificado de cliente.