MessageWebSocket.ServerCustomValidationRequested Событие

Определение

Происходит при проверке нового подключения MessageWebSocket к защищенному URI сервера (wss: protocol). Обработайте это событие, если вы хотите реализовать настраиваемую проверку сервера для подключения.

// Register
event_token ServerCustomValidationRequested(TypedEventHandler<MessageWebSocket, WebSocketServerCustomValidationRequestedEventArgs const&> const& handler) const;

// Revoke with event_token
void ServerCustomValidationRequested(event_token const* cookie) const;

// Revoke with event_revoker
MessageWebSocket::ServerCustomValidationRequested_revoker ServerCustomValidationRequested(auto_revoke_t, TypedEventHandler<MessageWebSocket, WebSocketServerCustomValidationRequestedEventArgs const&> const& handler) const;
public event TypedEventHandler<MessageWebSocket,WebSocketServerCustomValidationRequestedEventArgs> ServerCustomValidationRequested;
function onServerCustomValidationRequested(eventArgs) { /* Your code */ }
messageWebSocket.addEventListener("servercustomvalidationrequested", onServerCustomValidationRequested);
messageWebSocket.removeEventListener("servercustomvalidationrequested", onServerCustomValidationRequested);
- or -
messageWebSocket.onservercustomvalidationrequested = onServerCustomValidationRequested;
Public Custom Event ServerCustomValidationRequested As TypedEventHandler(Of MessageWebSocket, WebSocketServerCustomValidationRequestedEventArgs) 

Тип события

Требования к Windows

Семейство устройств
Windows 10 Anniversary Edition (появилось в 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v3.0)

Комментарии

Обратите внимание, что это событие возникает после успешной проверки ОС по умолчанию и что проверка ОС по умолчанию включает в себя учет параметра элемента управления IgnorableServerCertificateErrors .

Используйте свойства WebSocketServerCustomValidationRequestedEventArgs для доступа к сертификату сервера и промежуточным сертификатам, предлагаемым для проверки.

Чтобы обеспечить правильное завершение, если настраиваемый процесс проверки включает какие-либо асинхронные операции, обязательно используйте метод WebSocketServerCustomValidationRequestedEventArgs.GetDeferral , чтобы получить объект отсрочки, который хранится обработчиком событий на протяжении всего периода выполнения операции проверки. После завершения проверки необходимо вызвать Deferral.Complete независимо от того, принимаете ли вы или отклоняете проверку.

В качестве примера проверки, которую можно выполнить в этом обработчике событий, можно сравнить сертификат сервера с локально хранящимся доверенным сертификатом, который соответствует ожидаемому сертификату сервера. В обработчике событий можно сравнить хэш SHA-256 локального сертификата с хэшом сертификата сервера. Если хэш-значения совпадают, предполагается, что сертификаты совпадают, и проверка сервера должна быть успешной. Если хэш-значения не совпадают, сертификаты не совпадают, и проверка должна завершиться ошибкой.

Чтобы указать на сбой проверки, вызовите метод WebSocketServerCustomValidationRequestedEventArgs.Reject . Чтобы указать на успешность проверки, просто вернитесь из обработчика событий.

Обратите внимание, что независимо от успешной или неудачной проверки необходимо вызвать Deferral.Complete для объекта deferral, полученного при запуске процесса проверки.

Применяется к