Ich muss auf einen REST-Service zugreifen, der ein Zertifikat hat, das nicht wirklich gültig ist. So trat ich in die folgenden in meinem Code:ServerCertificateValidationCallback zurücksetzen
System.Net.ServicePointManager.ServerCertificateValidationCallback =
((sender, cert, chain, errors) =>
cert.Subject.Contains("soap.example.com"));
Danach habe ich das tun, was ich die Soap-Werte zu tun haben, abrufen.
Alles ist in Ordnung.
Aber später muss ich eine Verbindung zu einer anderen Domäne (die ein gültiges SSL-Zertifikat hat) und dies stürzt wegen eines Zertifikats Fehler, der verschwindet, wenn ich den IIS neu starten und kommt nur zurück, nachdem das oben angezeigte Code-Segment aufgerufen wird wieder:
System.Net.WebException: die zugrunde liegende Verbindung wurde geschlossen: Kann keine Vertrauensstellung für den sicheren SSL/TLS-Kanal aufzubauen. ---> System.Security.Authentication.AuthenticationException: Das Remote-Zertifikat ist gemäß dem Überprüfungsverfahren ungültig.
Nach dem Soap-Anruf, wie kann ich sicherstellen, dass das normale Verhalten wieder funktioniert?
Einfaches Zurücksetzen auf ServerCertificateValidationCallback=null
scheint nicht zu funktionieren.
(Ich bin voll und ganz bewusst über die Gefahren des Callbacks)
Mögliche Duplikat [Wie innen angepasst Validierung Standard ServerCertificateValidationCallback anrufen?] (Https://stackoverflow.com/questions/28679120/how-to-call-default-servercertificatevalidationcallback-inside-customized-valida) – mjwills