Aşağıdaki kod parçacıkları, aradığınız sunucudaki SSL sertifikasında bir sorun olduğunda durumu düzeltir. Örneğin, kendinden imzalı olabilir veya sertifika ile sunucu arasındaki ana bilgisayar adı eşleşmeyebilir.
Doğrudan kontrolünüz dışındaki bir sunucuyu çağırıyorsanız bu tehlikelidir , çünkü artık bağlı olduğunuzu düşündüğünüz sunucuyla konuştuğunuzdan emin olamazsınız. Bununla birlikte, dahili sunucularla uğraşıyorsanız ve "doğru" bir sertifika almak pratik değilse, web servisine sertifika sorunlarını ve cesur askıyı yok saymasını söylemek için aşağıdakileri kullanın.
İlk ikisi lambda ifadelerini, üçüncüsü ise normal kodu kullanır. Birincisi herhangi bir sertifikayı kabul eder. Son ikisi en azından sertifikadaki ana bilgisayar adının beklediğiniz ad olup olmadığını kontrol eder.
... umarım faydalı bulursun
//Trust all certificates
System.Net.ServicePointManager.ServerCertificateValidationCallback =
((sender, certificate, chain, sslPolicyErrors) => true);
// trust sender
System.Net.ServicePointManager.ServerCertificateValidationCallback
= ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));
// validate cert by calling a function
ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate);
// callback used to validate the certificate in an SSL conversation
private static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors policyErrors)
{
bool result = cert.Subject.Contains("YourServerName");
return result;
}