RemoteCertificateValidationCallback Temsilci
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Kimlik doğrulaması için kullanılan uzak Güvenli Yuva Katmanı (SSL) sertifikasını doğrular.
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
Parametreler
- sender
- Object
Bu doğrulama için durum bilgilerini içeren bir nesne.
- certificate
- X509Certificate
Uzak tarafın kimliğini doğrulamak için kullanılan sertifika.
- chain
- X509Chain
Uzak sertifikayla ilişkili sertifika yetkilileri zinciri.
- sslPolicyErrors
- SslPolicyErrors
Uzak sertifikayla ilişkili bir veya daha fazla hata.
Dönüş Değeri
Boolean Belirtilen sertifikanın kimlik doğrulaması için kabul edilip edilmediğini belirleyen bir değer.
Örnekler
Aşağıdaki kod örneği, sınıfının bir örneği RemoteCertificateValidationCallback tarafından çağrılan bir yöntem uygular. Doğrulama hataları varsa, bu yöntem bunları görüntüler ve kimliği doğrulanmamış sunucuyla iletişimi engelleyen döndürür false.
// 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;
}
Aşağıdaki kod örneği, önceki kod örneğinde tanımlanan yöntemi kullanarak temsilciyi oluşturur.
// 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;
}
Açıklamalar
Temsilcinin sslPolicyErrors bağımsız değişkeni, istemcinin veya sunucunun kimliğini doğrularken SSPI tarafından döndürülen sertifika hatalarını içerir. Bu Boolean temsilci tarafından çağrılan yöntem tarafından döndürülen değer, kimlik doğrulamasının başarılı olmasına izin verilip verilmeyeceğini belirler.
Bu temsilci sınıfıyla birlikte SslStream kullanılır.
Uzantı Metotları
| Name | Description |
|---|---|
| GetMethodInfo(Delegate) |
Belirtilen temsilci tarafından temsil edilen yöntemi temsil eden bir nesnesi alır. |