RemoteCertificateValidationCallback Delegát
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Ověřuje vzdálený certifikát SSL (Secure Sockets Layer) používaný k ověřování.
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
Parametry
- sender
- Object
Objekt, který obsahuje informace o stavu pro toto ověření.
- certificate
- X509Certificate
Certifikát použitý k ověření vzdálené strany.
- chain
- X509Chain
Řetěz certifikačních autorit přidružených ke vzdálenému certifikátu.
- sslPolicyErrors
- SslPolicyErrors
Jedna nebo více chyb přidružených ke vzdálenému certifikátu.
Návratová hodnota
Hodnota Boolean , která určuje, zda je zadaný certifikát přijat pro ověřování.
Příklady
Následující příklad kódu implementuje metodu, která je vyvolána instancí RemoteCertificateValidationCallback třídy. Pokud dojde k chybám ověření, tato metoda je zobrazí a vrátí false, což brání komunikaci s neověřeným serverem.
// 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;
}
Následující příklad kódu vytvoří delegát pomocí metody definované v předchozím příkladu kódu.
// 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;
}
Poznámky
Argument delegáta sslPolicyErrors obsahuje chyby certifikátu vrácené SSPI při ověřování klienta nebo serveru. Hodnota Boolean vrácená metodou vyvolanou tímto delegátem určuje, zda ověřování může být úspěšné.
Tento delegát se používá se SslStream třídou.
Metody rozšíření
| Name | Description |
|---|---|
| GetMethodInfo(Delegate) |
Získá objekt, který představuje metodu reprezentovanou zadaným delegátem. |