どのように私は、HTTPSを使用してSSL暗号化されたサイトにアクセスするためにWebRequestクラスを使用しますか?

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

  •  05-09-2019
  •  | 
  •  

質問

私は、ユーザーに提供されたURLからコンテンツを読み込むプログラムを書いています。私の問題は、このような何かを行くコードである。

Uri uri = new Uri(url);
WebRequest webRequest = WebRequest.Create(uri);
WebResponse webResponse = webRequest.GetResponse();
ReadFrom(webResponse.GetResponseStream());
URL:提供のURL のは、 "// https" のであれば、

そして、これは破壊されます。誰もが、それはSSL暗号化されたコンテンツで動作するようにこのコードを変更することで私を助けることができます。おかげます。

役に立ちましたか?

解決

あなたはそれを正しい方法をやっているが、ユーザーがインストールされ、無効なSSL証明書を持つサイトへのURLを提供することができます。あなたは、実際のWeb要求を行う前に、あなたがこの行を入れている場合は、それらの証明書の問題を無視することができます:

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 /ライブラリ/ ds8bxk2a.aspxする

  

HTTP接続の場合は、WebRequestクラスとにWebResponseクラスは、SSLをサポートするWebホストとの通信にSSLを使用しています。 SSLを使用するという決定は、それが指定されたURIに基づいて、WebRequestクラスによって行われます。 URIが「httpsの:」で始まる場合、SSLが使用されます。 URIで始まる場合は「http:」、暗号化されていない接続が使用されている。

この1は私のために働いてます:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top