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 die 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
| Anforderungen | Beschreibung |
|---|---|
| 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 Standardmäßige Betriebssystemüberprüfung erfolgreich ausgeführt wurde und dass die Standardmäßige Betriebssystemüberprüfung die IgnorableServerCertificateErrors-Steuerelementoption berücksichtigt.
Verwenden Sie die WebSocketServerCustomValidationRequestedEventArgs-Eigenschaften , um auf das Serverzertifikat und die Zwischenzertifikate zuzugreifen, die zur Überprüfung angeboten werden.
Um den ordnungsgemäßen Abschluss sicherzustellen, stellen Sie sicher, dass Sie bei einem benutzerdefinierten Überprüfungsprozess asynchrone Vorgänge verwenden, die WebSocketServerCustomValidationRequestedEventArgs.GetDeferral-Methode verwenden, um ein Verzögerungsobjekt abzurufen, das der Ereignishandler für die Dauer des Überprüfungsvorgangs enthält. Wenn die Überprüfung abgeschlossen ist, müssen Sie Deferral.Complete aufrufen, unabhängig davon, ob Sie die Überprüfung annehmen oder ablehnen.
Als Beispiel für die Art der Überprüfung können Sie in diesem Ereignishandler vorgehen: Sie können das Serverzertifikat mit einem lokal gespeicherten vertrauenswürdigen Zertifikat vergleichen, das mit dem erwarteten Serverzertifikat übereinstimmt. Im Ereignishandler würden Sie den SHA-256-Hash des lokalen Zertifikats mit dem Hash des Serverzertifikats vergleichen. 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.
Rufen Sie zum Angeben eines Überprüfungsfehlers die WebSocketServerCustomValidationRequestedEventArgs.Reject-Methode auf. Um den Validierungserfolg anzugeben, kehren Sie einfach vom Ereignishandler zurück.
Beachten Sie, ob die Überprüfung erfolgreich ist oder fehlschlägt, sie müssen "Deferral.Complete " für das Zurückstellungsobjekt aufrufen, das Sie beim Starten des Überprüfungsprozesses erworben haben.