7 Mart 2018 Çarşamba

ServicePointManager Sınıfı

Giriş
Şu satırı dahil ederiz.
using System.Net;
Açıklaması şöyle.
In the .NET Framework, the built-in support for HTTP (and by extension TLS) is handled by
ServicePoint class. You can configure basic parameters like the TLS versions to support
via the ServicePointManager class,but this class doesn't offer any extension points for
supplying a custom algorithm.
SecurityProtocol Alanı
HttpWebRequest.Create () veya HttpClient.PostAsync() gibi çağrılardan önce bu sınıfı kullanırız.
Örnek
Şöyle yaparız
ServicePointManager.SecurityProtocol =
  SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Örnek
SSLv3 desteğini kapatmak için şöyle yaparız.
ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3;
ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11
    | SecurityProtocolType.Tls12;
Örnek
Şöyle yaparız.
var p = SecurityProtocolType.SystemDefault;
ServerCertificateValidationCallback Alanı
Örnek
Hataları görmek için şöyle yaparız.
ServicePointManager.ServerCertificateValidationCallback +=
  (sender, cert, chain, sslPolicyErrors) => {

    SslPolicyErrors errs = sslPolicyErrors;
    Console.WriteLine("Policy Errors " + sslPolicyErrors.ToString());           
    return true;
};
Örnek
Şöyle yaparız. Böylece eğer karşı tarafında gönderdiği sertifika trusted sertifikalar arasında yoksa bile bağlantı kurulabilir.
System.Net.ServicePointManager.ServerCertificateValidationCallback = 
delegate(object sender,
     System.Security.Cryptography.X509Certificates.X509Certificate certificate,
     System.Security.Cryptography.X509Certificates.X509Chain chain,
     System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
  return true;
};
Örnek
Çok daha kısa olarak şöyle yaparız.
ServicePointManager
    .ServerCertificateValidationCallback += 
    (sender, cert, chain, sslPolicyErrors) => true;


Hiç yorum yok:

Yorum Gönder