RemoteCertificateValidationCallback Gedelegeerde
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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. |