クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
.NET 開発
以前のバージョン
.NET Framework SDK 2.0
System.Net.Security
 RemoteCertificateValidationCallback...

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2005/.NET Framework 2.0

その他のバージョンについては、以下の情報を参照してください。
.NET Framework クラス ライブラリ
RemoteCertificateValidationCallback デリゲート

メモ : このデリゲートは、.NET Framework version 2.0 で新しく追加されたものです。

認証に使用されるリモートの SSL (Secure Sockets Layer) 証明書を検証します。

名前空間: System.Net.Security
アセンブリ: System (system.dll 内)

Visual Basic (宣言)
Public Delegate Function RemoteCertificateValidationCallback ( _
    sender As Object, _
    certificate As X509Certificate, _
    chain As X509Chain, _
    sslPolicyErrors As SslPolicyErrors _
) As Boolean
Visual Basic (使用法)
Dim instance As New RemoteCertificateValidationCallback(AddressOf HandlerMethod)
C#
public delegate bool RemoteCertificateValidationCallback (
    Object sender,
    X509Certificate certificate,
    X509Chain chain,
    SslPolicyErrors sslPolicyErrors
)
C++
public delegate bool RemoteCertificateValidationCallback (
    Object^ sender, 
    X509Certificate^ certificate, 
    X509Chain^ chain, 
    SslPolicyErrors sslPolicyErrors
)
J#
/** @delegate */
public delegate boolean RemoteCertificateValidationCallback (
    Object sender, 
    X509Certificate certificate, 
    X509Chain chain, 
    SslPolicyErrors sslPolicyErrors
)
JScript
JScript では、デリゲートは使用できますが、新規に宣言することはできません。

パラメータ

sender

この検証のステータス情報を格納するオブジェクト。

certificate

リモート側の認証に使用される証明書。

chain

リモートの証明書に関連付けられた証明機関のチェーン。

sslPolicyErrors

リモートの証明書に関連付けられた 1 つ以上のエラー。

戻り値

指定した証明書が認証に使用できるかどうかを判断する Boolean 値。

デリゲートの sslPolicyErrors 引数には、クライアントまたはサーバーの認証中に SSPI によって返されるすべての証明書エラーが格納されます。このデリゲートで呼び出されるメソッドによって返される Boolean 値は、認証が正常に許可されるかどうかを決定します。

このデリゲートは SslStream クラスで使用されます。

RemoteCertificateValidationCallback クラスのインスタンスによって呼び出されるメソッドを実装するコード例を次に示します。検証エラーがある場合、このメソッドはそれらを表示し、認証されていないサーバーとの通信を防ぐ false を返します。

C#
      
// The following method is invoked by the RemoteCertificateValidationDelegate.
public static bool ValidateServerCertificate(
      object sender,
      X509Certificate certificate,
      X509Chain chain,
      SslPolicyErrors sslPolicyErrors)
{
   if (sslPolicyErrors == SslPolicyErrors.None)
        return true;

    Console.WriteLine("Certificate error: {0}", sslPolicyErrors);
    
    // Do not allow this client to communicate with unauthenticated servers.
    return false;
}

前のコード例で定義されたメソッドを使用してデリゲートを作成するコード例を次に示します。

C#
// Create a TCP/IP client socket.
// machineName is the host running the server application.
TcpClient client = new TcpClient(machineName,443);
Console.WriteLine("Client connected.");
// Create an SSL stream that will close the client's stream.
SslStream sslStream = new SslStream(
    client.GetStream(), 
    false, 
    new RemoteCertificateValidationCallback (ValidateServerCertificate), 
    null
    );
// The server name must match the name on the server certificate.
try 
{
    sslStream.AuthenticateAsClient(serverName);
} 
catch (AuthenticationException e)
{
    Console.WriteLine("Exception: {0}", e.Message);
    if (e.InnerException != null)
    {
        Console.WriteLine("Inner exception: {0}", e.InnerException.Message);
    }
    Console.WriteLine ("Authentication failed - closing the connection.");
    client.Close();
    return;
}

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

.NET Framework

サポート対象 : 2.0
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker