2009-08-28 29 views
4

私はVSTS 2008 + C#+ .Net 3.5をSilverlight 3アプリケーションの開発に使用しています。別のWebサーバー(Silverlightアプリケーションを提供するサーバーを除く)のhttpsアドレスにアクセスする必要があります。C#https接続の問題

ここでは.NET 3.5コンソールアプリケーションで動作するコードですが、Silverlightを使用する場合はServicePointManagerのようなクラスを見つけることができません。 Silverlightで同じ機能を実装する方法を提案します(サーバーからのすべての証明書を受け入れます)。

public static void SetBypassSslCertificateValidation() 
{ 
    ServicePointManager.ServerCertificateValidationCallback 
     += new RemoteCertificateValidationCallback(BypassSslCertificateValidation); 
} 

private static bool BypassSslCertificateValidation(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error) 
{ 
    return true; 
} 
+0

悪意のある人があなたの接続をMITMできるので、任意の悪質な証明書を受け入れることを望んでいるなら、HTTPSを使うのは本当に意味がありません。 対象サーバが不正な証明書を使用しているのはなぜですか? – EricLaw

答えて

0

Silverlightは、BHWR(ブラウザネットワークスタック)が使用されているため、Webサービスやその他のコンテンツの信頼性をWebブラウザに委ねます。

その結果、Silverlightの任意のAPIを使用して証明書の検証をバイパスすることはできません。

Webブラウザの特殊な設定オプションやセキュリティ/ゾーン設定を調べることができます(テスト用にこれを使用している場合)。