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, полученного при запуске процесса проверки.