사용자가 제공 한 URL에서 콘텐츠를 읽는 프로그램을 작성 중입니다. 내 문제는 다음과 같은 코드에 있습니다.
Uri uri = new Uri(url);
WebRequest webRequest = WebRequest.Create(uri);
WebResponse webResponse = webRequest.GetResponse();
ReadFrom(webResponse.GetResponseStream());
제공된 URL 이 “https : //”URL 인 경우 이는 중단됩니다 . 누구든지 SSL 암호화 콘텐츠에서 작동하도록이 코드를 변경하는 데 도움을 줄 수 있습니까? 감사.
답변
올바른 방법으로 수행하고 있지만 사용자가 잘못된 SSL 인증서가 설치된 사이트에 URL을 제공 할 수 있습니다. 실제 웹 요청을하기 전에 다음 줄을 입력하면 이러한 인증서 문제를 무시할 수 있습니다.
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 연결의 경우 WebRequest 및 WebResponse 클래스는 SSL을 사용하여 SSL을 지원하는 웹 호스트와 통신합니다. SSL 사용 여부는 제공된 URI에 따라 WebRequest 클래스에서 결정합니다. URI가 “https :”로 시작하면 SSL이 사용됩니다. URI가 “http :”로 시작하면 암호화되지 않은 연결이 사용됩니다.
답변
이것은 나를 위해 일했습니다.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;