StreamWebSocket.ServerCustomValidationRequested Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.