HttpBaseProtocolFilter.ServerCustomValidationRequested 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
与服务器建立 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.
}