Freigeben über


StreamWebSocket.ServerCustomValidationRequested Ereignis

Definition

Tritt auf, wenn eine neue StreamWebSocket-Verbindung mit einem gesicherten Server-URI (wss: Protocol) überprüft wird. Behandeln Sie dieses Ereignis, wenn Sie eine benutzerdefinierte Serverüberprüfung für die Verbindung implementieren möchten.

// 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) 

Ereignistyp

Windows-Anforderungen

Gerätefamilie
Windows 10 Anniversary Edition (eingeführt in 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v3.0)

Hinweise

Beachten Sie, dass dieses Ereignis ausgelöst wird, nachdem die Standardbetriebssystemüberprüfung erfolgreich durchgeführt wurde, und dass die Standardbetriebssystemüberprüfung die Berücksichtigung der Steuerelementoption IgnorableServerCertificateErrors umfasst.

Verwenden Sie die Eigenschaften WebSocketServerCustomValidationRequestedEventArgs , um auf das Serverzertifikat und die Zur Überprüfung angebotenen Zwischenzertifikate zuzugreifen.

Wenn Ihr benutzerdefinierter Validierungsprozess asynchrone Vorgänge umfasst, stellen Sie sicher, dass Sie die WebSocketServerCustomValidationRequestedEventArgs.GetDeferral-Methode verwenden, um ein Verzögerungsobjekt abzurufen, das Ihr Ereignishandler für die Dauer des Validierungsvorgangs enthält. Wenn Die Validierung abgeschlossen ist, müssen Sie Deferral.Complete aufrufen, unabhängig davon, ob Sie die Validierung akzeptieren oder ablehnen.

Ein Beispiel für die Art der Validierung, die Sie in diesem Ereignishandler durchführen können: Sie können das Serverzertifikat mit einem lokal gespeicherten vertrauenswürdigen Zertifikat vergleichen, das dem erwarteten Serverzertifikat entspricht. In Ihrem Ereignishandler vergleichen Sie den SHA-256-Hash des lokalen Zertifikats mit dem Hash des Serverzertifikats. Wenn die Hashwerte übereinstimmen, wird davon ausgegangen, dass die Zertifikate übereinstimmen, und die Serverüberprüfung sollte erfolgreich sein. Wenn die Hashwerte nicht übereinstimmen, stimmen die Zertifikate nicht überein, und die Überprüfung sollte fehlschlagen.

Um einen Validierungsfehler anzugeben, rufen Sie die WebSocketServerCustomValidationRequestedEventArgs.Reject-Methode auf. Um den Validierungserfolg anzugeben, kehren Sie einfach vom Ereignishandler zurück.

Beachten Sie, dass Sie deferral.Complete für das Zurückstellungsobjekt aufrufen müssen, das Sie beim Starten des Validierungsprozesses erworben haben, unabhängig davon, ob die Überprüfung erfolgreich ist oder fehlschlägt.

Gilt für: