HttpBaseProtocolFilter.ServerCustomValidationRequested 事件

定义

与服务器建立 SSL/TLS 连接时,将引发此事件。 如果需要执行额外的验证 (以及服务器 SSL 证书的 OS 默认) ,则应为此事件实现事件处理程序。

// Register
event_token ServerCustomValidationRequested(TypedEventHandler<HttpBaseProtocolFilter, HttpServerCustomValidationRequestedEventArgs const&> const& handler) const;

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

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

事件类型

Windows 要求

设备系列
Windows 10 Anniversary Edition (在 10.0.14393.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v3.0 中引入)

注解

在引发此事件之前,会执行服务器证书的默认 OS 验证。 如果证书未通过此验证,则连接将终止,并且不会调用事件处理程序。

若要跳过部分 OS 验证 (不建议用于生产方案) ,请使用 IgnorableServerCertificateErrors 属性指定要忽略的错误。 然后,只要证书没有任何其他错误,OS 验证将被视为成功,并且将调用事件处理程序。

在建立 SSL/TLS 连接期间,事件处理程序代码作为 OS 中同步回调的一部分执行。 避免在事件处理程序代码中执行长时间运行的任务,以防止服务器在连接期间超时。

如果需要在事件处理程序代码中调用异步 API,则必须采用延迟 (在调用异步 API 之前,请参阅 HttpServerCustomValidationArgs.GetDeferral) 。 完成后,调用 延迟。完成 方法以从处理程序代码返回控制权。

以下代码片段演示如何订阅此事件。

HttpBaseProtocolFilter.ServerCustomValidationRequest += (sender, args) =>
{
	var cert = args.ServerCertificate
	// Your custom cert validation code here.
}

适用于