2017-07-05 11 views
1

私はHttpClientで要求を行うためにsslポリシーを無視しようとしていますが、ServerCertificateValidationCallbackは呼び出されません。 ASP.NET Core AppでServerCertificateValidationCallbackを呼び出す正しい場所は何ですか?私はそれをHttpClientの前に置く。HTTPClientリクエストを実行するSSLポリシーを無視するにはどうすればよいですか?

注:このクラスはnet462クラスライブラリにあります。

コード:

System.Net.ServicePointManager.ServerCertificateValidationCallback += 
delegate (object sender,  
System.Security.Cryptography.X509Certificates.X509Certificate certificate, 
System.Security.Cryptography.X509Certificates.X509Chain chain, 
System.Net.Security.SslPolicyErrors sslPolicyErrors) 
{ 
    return true; 
}; 

using (var client = new HttpClient()) 
{ 
    client.BaseAddress = new Uri("https://myapi"); 
    ... 

    var result = client.PostAsync(method, httpContent).Result; 
    ... 
} 

答えて

0

は、セキュリティプロトコルは私のプロジェクトの一つで動作するこの

//Handle TLS protocols 
System.Net.ServicePointManager.SecurityProtocol = 
    System.Net.SecurityProtocolType.Tls 
    | System.Net.SecurityProtocolType.Tls11 
    | System.Net.SecurityProtocolType.Tls12; 

var client = new HttpClient(); 
client.BaseAddress = new Uri("https://myapi"); 
//... 

var result = await client.PostAsync(method, httpContent); 
+0

のようにそれをしようと考えてみましょう。 Fiddlerでは、HTTPSプロトコルがセキュリティヘッダーを確実に送信することがわかります(Acess-Control-AllowHeaders:Content-Type、api_key、Authorization)。しかし、同じリクエストを持つ他のプロジェクトでは、ヘッダーは存在せず、HTTPを送信しています。私はこの動作のための答えを探しています。もしあなたが何か考えているなら、これは歓迎されるでしょう。私はこのバグを克服するときに分かち合うことがうれしいです。ありがとう! – Carlos

0

以前のコールバックの初期化コードを入れてみてください - Webコントロールが表示される前に、または主な機能。

クレジットがこの回答に行く:https://stackoverflow.com/a/5043083/1709981

関連する問題