HttpBaseProtocolFilter.ServerCustomValidationRequested Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Esse evento é gerado quando a conexão SSL/TLS está sendo estabelecida com o servidor. Você deve implementar um manipulador de eventos para esse evento se precisar executar uma validação extra (além do padrão do sistema operacional) do certificado SSL do servidor.
// Register
event_token ServerCustomValidationRequested(TypedEventHandler<HttpBaseProtocolFilter, HttpServerCustomValidationRequestedEventArgs const&> const& handler) const;
// Revoke with event_token
void ServerCustomValidationRequested(event_token const* cookie) const;
// Revoke with event_revoker
HttpBaseProtocolFilter::ServerCustomValidationRequested_revoker ServerCustomValidationRequested(auto_revoke_t, TypedEventHandler<HttpBaseProtocolFilter, HttpServerCustomValidationRequestedEventArgs const&> const& handler) const;
public event TypedEventHandler<HttpBaseProtocolFilter,HttpServerCustomValidationRequestedEventArgs> ServerCustomValidationRequested;
function onServerCustomValidationRequested(eventArgs) { /* Your code */ }
httpBaseProtocolFilter.addEventListener("servercustomvalidationrequested", onServerCustomValidationRequested);
httpBaseProtocolFilter.removeEventListener("servercustomvalidationrequested", onServerCustomValidationRequested);
- or -
httpBaseProtocolFilter.onservercustomvalidationrequested = onServerCustomValidationRequested;
Public Custom Event ServerCustomValidationRequested As TypedEventHandler(Of HttpBaseProtocolFilter, HttpServerCustomValidationRequestedEventArgs)
Tipo de evento
Requisitos do Windows
Família de dispositivos |
Windows 10 Anniversary Edition (introduzida na 10.0.14393.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v3.0)
|
Comentários
A validação padrão do sistema operacional do certificado do servidor é executada antes de gerar esse evento. Se o certificado falhar nessa validação, a conexão será encerrada e o manipulador de eventos não será chamado.
Para ignorar partes da validação do sistema operacional (não recomendada para cenários de produção), use a propriedade IgnorableServerCertificateErrors para especificar os erros que você deseja ignorar. Desde que o certificado não tenha outros erros, a validação do sistema operacional será considerada bem-sucedida e o manipulador de eventos será chamado.
O código do manipulador de eventos é executado como parte de um retorno de chamada síncrono no sistema operacional durante o estabelecimento da conexão SSL/TLS. Evite executar tarefas de longa execução no código do manipulador de eventos para impedir que o servidor atinja o tempo limite durante a conexão.
Se você precisar chamar APIs assíncronas no código do manipulador de eventos, deverá fazer um adiamento (consulte HttpServerCustomValidationArgs.GetDeferral) antes de chamar as APIs assíncronas. Quando terminar, chame o adiamento. Método completo para retornar o controle do código do manipulador.
O snippet a seguir mostra como assinar esse evento.
HttpBaseProtocolFilter.ServerCustomValidationRequest += (sender, args) =>
{
var cert = args.ServerCertificate
// Your custom cert validation code here.
}