Wie verwende ich WebRequest eine SSL-verschlüsselte Website über https zugreifen?

StackOverflow https://stackoverflow.com/questions/560804

  •  05-09-2019
  •  | 
  •  

Frage

Ich schreibe ein Programm, das Inhalt von einem Benutzer bereitgestellte URL liest. Mein Problem ist in dem Code, der etwas geht:

Uri uri = new Uri(url);
WebRequest webRequest = WebRequest.Create(uri);
WebResponse webResponse = webRequest.GetResponse();
ReadFrom(webResponse.GetResponseStream());

Und das bricht, wenn die zur Verfügung gestellt url ist ein "https: //" URL. Kann mir jemand helfen, diesen Code mit ändern, dass er mit SSL verschlüsseltem Inhalt zu arbeiten. Danke.

War es hilfreich?

Lösung

Sie tun es dem richtigen Weg, aber die Benutzer können URLs zu Websites zur Verfügung stellen, die ungültigen SSL-Zertifikate installiert haben. Sie können diese cert Probleme ignorieren, wenn Sie in dieser Zeile setzen, bevor Sie die eigentliche Web-Anfrage zu machen:

ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);

Dabei gilt AcceptAllCertifications als

definiert
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
    return true;
}

Andere Tipps

Dieser Link wird für Sie von Interesse sein: http://msdn.microsoft .com / en-us / library / ds8bxk2a.aspx

  

Für HTTP-Verbindungen, die Klassen WebRequest und WebResponse verwenden SSL mit Internet-Hosts zu kommunizieren, die SSL unterstützen. Die Entscheidung, die Verwendung von SSL wird von der WebRequest-Klasse gemacht, basierend auf dem URI es gegeben ist. Wenn die URI mit „https:“ beginnt, wird SSL verwendet wird; wenn die URI mit „http:“ beginnt., eine unverschlüsselte Verbindung verwendet wird

Dieser arbeitete für mich:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top