StreamWebSocket.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.
Ocorre quando uma nova conexão StreamWebSocket com um URI de servidor seguro (protocolo wss: ) está sendo validada. Manipule esse evento se você quiser implementar a validação de servidor personalizada para a conexão.
// Register
event_token ServerCustomValidationRequested(TypedEventHandler<StreamWebSocket, WebSocketServerCustomValidationRequestedEventArgs const&> const& handler) const;
// Revoke with event_token
void ServerCustomValidationRequested(event_token const* cookie) const;
// Revoke with event_revoker
StreamWebSocket::ServerCustomValidationRequested_revoker ServerCustomValidationRequested(auto_revoke_t, TypedEventHandler<StreamWebSocket, WebSocketServerCustomValidationRequestedEventArgs const&> const& handler) const;
public event TypedEventHandler<StreamWebSocket,WebSocketServerCustomValidationRequestedEventArgs> ServerCustomValidationRequested;
function onServerCustomValidationRequested(eventArgs) { /* Your code */ }
streamWebSocket.addEventListener("servercustomvalidationrequested", onServerCustomValidationRequested);
streamWebSocket.removeEventListener("servercustomvalidationrequested", onServerCustomValidationRequested);
- or -
streamWebSocket.onservercustomvalidationrequested = onServerCustomValidationRequested;
Public Custom Event ServerCustomValidationRequested As TypedEventHandler(Of StreamWebSocket, WebSocketServerCustomValidationRequestedEventArgs)
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
Observe que esse evento é gerado após a validação padrão do sistema operacional ter sido executada com êxito e que a validação padrão do sistema operacional inclui levar em conta a opção de controle IgnorableServerCertificateErrors .
Use as propriedades WebSocketServerCustomValidationRequestedEventArgs para acessar o certificado do servidor e os certificados intermediários que estão sendo oferecidos para validação.
Para garantir a conclusão adequada, se o processo de validação personalizado envolver qualquer operação assíncrona, use o método WebSocketServerCustomValidationRequestedEventArgs.GetDeferral para obter um objeto de adiamento que o manipulador de eventos mantém durante a operação de validação. Quando a validação for concluída, você deverá chamar Deferral.Complete se aceitar ou rejeitar a validação.
Como exemplo do tipo de validação que você pode fazer neste manipulador de eventos: você pode comparar o certificado do servidor com um certificado confiável armazenado localmente que corresponda ao certificado de servidor esperado. No manipulador de eventos, você compararia o hash SHA-256 do certificado local com o hash do certificado do servidor. Se os valores de hash corresponderem, os certificados serão considerados correspondentes e a validação do servidor deverá ser bem-sucedida. Se os valores de hash não corresponderem, os certificados não corresponderão e a validação deverá falhar.
Para indicar uma falha de validação, chame o método WebSocketServerCustomValidationRequestedEventArgs.Reject . Para indicar o êxito da validação, basta retornar do manipulador de eventos.
Observe que, se a validação for bem-sucedida ou falhar, você deve chamar Deferral.Complete no objeto de adiamento adquirido quando iniciou o processo de validação.