WinHttpHandler.ServerCertificateValidationCallback 属性

定义

获取或设置用于验证服务器证书的回调方法。 此回调是 SSL 握手的一部分。

public:
 property Func<System::Net::Http::HttpRequestMessage ^, System::Security::Cryptography::X509Certificates::X509Certificate2 ^, System::Security::Cryptography::X509Certificates::X509Chain ^, System::Net::Security::SslPolicyErrors, bool> ^ ServerCertificateValidationCallback { Func<System::Net::Http::HttpRequestMessage ^, System::Security::Cryptography::X509Certificates::X509Certificate2 ^, System::Security::Cryptography::X509Certificates::X509Chain ^, System::Net::Security::SslPolicyErrors, bool> ^ get(); void set(Func<System::Net::Http::HttpRequestMessage ^, System::Security::Cryptography::X509Certificates::X509Certificate2 ^, System::Security::Cryptography::X509Certificates::X509Chain ^, System::Net::Security::SslPolicyErrors, bool> ^ value); };
public Func<System.Net.Http.HttpRequestMessage,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors,bool>? ServerCertificateValidationCallback { get; set; }
public Func<System.Net.Http.HttpRequestMessage,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors,bool> ServerCertificateValidationCallback { get; set; }
member this.ServerCertificateValidationCallback : Func<System.Net.Http.HttpRequestMessage, System.Security.Cryptography.X509Certificates.X509Certificate2, System.Security.Cryptography.X509Certificates.X509Chain, System.Net.Security.SslPolicyErrors, bool> with get, set
Public Property ServerCertificateValidationCallback As Func(Of HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, Boolean)

属性值

如果服务器证书被视为有效且应发送请求,则回调应返回 true 。 否则返回 false

示例

下面的代码示例实现回调。 如果存在验证错误,此方法将返回 false 阻止与未经身份验证的服务器通信。 否则,它允许进行其他验证,并在证书有效时返回 true

var handler = new WinHttpHandler();
handler.ServerCertificateValidationCallback = (httpRequestMessage, certificate, chain, sslPolicyErrors) =>
{
    if (sslPolicyErrors == SslPolicyErrors.None)
    {
        // TODO: Implement additional custom certificate validation logic here.
        return true;
    }
    // Do not allow this client to communicate with unauthenticated servers.
    return false;
};

注解

默认值为 null。 如果此属性是 null,则使用标准已知证书颁发机构验证服务器证书。

委托的参数 sslPolicyErrors 包含 SSPI 在对服务器进行身份验证时返回的任何证书错误。 Boolean此委托返回的值确定是否允许身份验证成功。

适用于