2011-10-19 6 views
0

私はreCAPTCHAソリューション(最新バージョン)をASP.NET Webプロジェクトに実装しました。ローカルの環境でうまく動作しますが、SSL暗号化されたサーバーでは、「安全に配信されたWebページコンテンツのみを表示しますか?このWebページには、安全なHTTPS接続を使用して配信されないコンテンツが含まれていますウェブページ全体のセキュリティを脅かす可能性がある」と語った。これはInternet Explorerでのみ発生します。Internet Explorer SSL警告メッセージのASP.NET reCAPTCHA

私はグーグル(:https://api-secure.recaptcha.net新へ:古いhttps://www.google.com/recaptcha/api)を新たに廃止予定のサーバーを変更するには、これらのフォーラムや他の人に、見つけたが、私は直接だけの.NETライブラリを使用して、JavaScriptファイルを参照するわけではありません。

ご協力いただければ幸いです!

答えて

3

ブラウズthe control's sourceから、コントロールには、trueに設定すると常にHTTPS経由でコントロールがレンダリングされるというOverrideSecureModeというプロパティがあります。

The MVC Helperは、そのプロパティの設定を許可していないようです。どのホスト名を使用するかは、Context.Request.IsSecureConnectionを使用しているようです。その価値があなたにとって間違っている理由を発見することは、この問題を攻撃する別の方法です。

+0

ありがとうございます。私の人生がそれに依存していれば、私がソースを見つけたとは思わない! –

+0

MVC3でOverrideSecureModeの値を実際に設定する方法に関する提案はありますか? recpatcha HtmlHelper:ReCaptcha.OverrideSecureMode = true;をホストするMVC3 .cshtmlページでこれを実行しようとすると、VSはOverrideSecureModeの定義が存在しないと言っています。 – TimH

+0

@TimH再び、ソースを見てください:http://code.google.com/p/recaptcha/source/browse/trunk/recaptcha-plugins/dotnet/library/RecaptchaControlMvc.cs :)回答が更新されました。 –

4

ダンは上記の指摘している、とアプリケーションサーバーがHTTPSをインターセプトし、転送HTTPとして、そしてOverrideSecureModeはおそらくfalseになり、レンダリングが安全でない場所を取るロードバランサの背後にあるようMVCヘルパーはContext.Request.IsSecureConnectionを使用している場合。

ロードバランサの背後にある場合、元のプロトコルを見つける方法の1つは、このようなことです(X-Forwarded-Protoヘッダーフィールドにアクセスできる場合)。

bool isSecureConnection = String.Equals(
     filterContext.HttpContext.Request.Headers["X-Forwarded-Proto"], 
     "https", 
     StringComparison.OrdinalIgnoreCase); 
+0

これは、私が現在のリクエストから "環境固有のURL"を取得するために使用するものです。[post - Request.Url]から離れる(http://www.rajeeshcv.com/post/details/40/stayaway-from-request-url) – psulek

関連する問題