RemoteCertificateValidationCallback Gedelegeerde

Definitie

Controleert het externe SSL-certificaat (Secure Sockets Layer) dat wordt gebruikt voor verificatie.

public delegate bool RemoteCertificateValidationCallback(System::Object ^ sender, X509Certificate ^ certificate, X509Chain ^ chain, SslPolicyErrors sslPolicyErrors);
public delegate bool RemoteCertificateValidationCallback(object sender, X509Certificate? certificate, X509Chain? chain, SslPolicyErrors sslPolicyErrors);
public delegate bool RemoteCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors);
type RemoteCertificateValidationCallback = delegate of obj * X509Certificate * X509Chain * SslPolicyErrors -> bool
Public Delegate Function RemoteCertificateValidationCallback(sender As Object, certificate As X509Certificate, chain As X509Chain, sslPolicyErrors As SslPolicyErrors) As Boolean 

Parameters

sender
Object

Een object met statusinformatie voor deze validatie.

certificate
X509Certificate

Het certificaat dat wordt gebruikt om de externe partij te verifiëren.

chain
X509Chain

De keten van certificeringsinstanties die zijn gekoppeld aan het externe certificaat.

sslPolicyErrors
SslPolicyErrors

Een of meer fouten die zijn gekoppeld aan het externe certificaat.

Retourwaarde

Een Boolean waarde die bepaalt of het opgegeven certificaat wordt geaccepteerd voor verificatie.

Voorbeelden

In het volgende codevoorbeeld wordt een methode geïmplementeerd die wordt aangeroepen door een exemplaar van de RemoteCertificateValidationCallback klasse. Als er validatiefouten zijn, worden deze met deze methode weergegeven en geretourneerd false, waardoor communicatie met de niet-geverifieerde server wordt voorkomen.


// 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;
}

In het volgende codevoorbeeld wordt de gemachtigde gemaakt met behulp van de methode die is gedefinieerd in het voorgaande codevoorbeeld.

// Create a TCP/IP client socket.
// machineName is the host running the server application.
TcpClient client = new TcpClient(machineName,5000);
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;
}

Opmerkingen

Het argument van sslPolicyErrors de gemachtigde bevat certificaatfouten die door SSPI worden geretourneerd tijdens het verifiëren van de client of server. De Boolean waarde die wordt geretourneerd door de methode die door deze gemachtigde wordt aangeroepen, bepaalt of de verificatie mag slagen.

Deze gemachtigde wordt gebruikt met de SslStream klasse.

Extensiemethoden

Name Description
GetMethodInfo(Delegate)

Hiermee haalt u een object op dat de methode vertegenwoordigt die wordt vertegenwoordigd door de opgegeven gemachtigde.

Van toepassing op

Zie ook