Как использовать WebRequest для доступа к зашифрованному сайту SSL с помощью https?

Я пишу программу, которая читает контент с предоставленного пользователем URL. Моя проблема заключается в коде, который выглядит примерно так:

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

И это ломается, если предоставленный url является URL-адресом «https: //». Может ли кто-нибудь помочь мне с изменением этого кода, чтобы он работал с SSL-зашифрованным контентом. Благодарю.

Вы делаете это правильно, но пользователи могут предоставлять URL-адреса сайтам, на которых установлены недействительные сертификаты ssl. Вы можете проигнорировать эти проблемы с сертификатом, если вы разместите эту строку до того, как вы сделаете фактический веб-запрос:

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

где AcceptAllCertifications определяется как

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

Эта ссылка будет вам интересна: http://msdn.microsoft.com/en-us/library/ds8bxk2a.aspx

Для http-соединений classы WebRequest и WebResponse используют SSL для связи с веб-хостами, поддерживающими SSL. Решение использовать SSL производится classом WebRequest на основе его URI. Если URI начинается с «https:», используется SSL; если URI начинается с «http:», используется незашифрованное соединение.

Это работало для меня:

 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 
  • Создание WPF BitmapImage из MemoryStream png, gif
  • Давайте будем гением компьютера.