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 値によって、認証が成功できるかどうかが決まります。

適用対象