Compartilhar via


StreamWebSocket.ServerCustomValidationRequested Evento

Definição

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.

Aplica-se a