7

ASP.NET recaptcha コントロールの使用を開始しましたが、正常に動作します。ただし、必要な要件の 1 つは、すべてのアウトバウンド トラフィックが Https を経由することです。

recaptcha が https をサポートしていることは知っていますが、ASP.NET プラグイン オプションを使用する場合の構成方法 (構成可能であっても) が明確ではありません。

誰かがこれを経験したことがありますか?

これまでに見つけたものを少し拡張します....

Recaptcha パッケージには 3 つの公開クラスが含まれています

RecaptchaControl, RecaptchaValidatorRecaptchaResponse

RecaptchaControlは Asp.NET コントロールであり、そこにある recaptcha 固有のメソッドは、テーマ/ルック アンド フィールに関係しているようです。

Validator のインスタンスには RemoteIP フィールド (検証サーバーを表すと思われます) がありますが、それをコントロールにバインドする方法がありません。

RecaptchaResponse可能な応答(有効/無効/接続に失敗)を含む列挙型を多かれ少なかれ表しているようです。

リクエストが https の場合、Recaptcha コントロールはインテリジェントに https を選択するようです。検証でも同じことができると思いますが、ソースコードからは明らかではありません http://code.google.com/p/recaptcha/source/browse/trunk/recaptcha-plugins/dotnet/library/

private const string VerifyUrl = "http://www.google.com/recaptcha/api/verify";
private const string RECAPTCHA_SECURE_HOST = "https://api-secure.recaptcha.net";        
private const string RECAPTCHA_HOST = "http://api.recaptcha.net";
--------------------------------SNIP------------------------------------
/// <summary>
        /// This function generates challenge URL.
        /// </summary>
        private string GenerateChallengeUrl(bool noScript)
        {
            StringBuilder urlBuilder = new StringBuilder();
            urlBuilder.Append(Context.Request.IsSecureConnection || this.overrideSecureMode ? RECAPTCHA_SECURE_HOST : RECAPTCHA_HOST);
            urlBuilder.Append(noScript ? "/noscript?" : "/challenge?");
            urlBuilder.AppendFormat("k={0}", this.PublicKey);
            if (this.recaptchaResponse != null && this.recaptchaResponse.ErrorCode != string.Empty)
            {
                urlBuilder.AppendFormat("&error={0}", this.recaptchaResponse.ErrorCode);
            }

            return urlBuilder.ToString();
        }
4

3 に答える 3

12

http://recaptcha.net/apidocs/captcha/client.htmlを確認すると、次のように表示されます。

「ブラウザの警告を回避するには、SSL サイトで reCAPTCHA を使用する場合、 http://api.recaptcha.nethttps://api-secure.recaptcha.netに置き換える必要があります。」

したがって、recaptcha が HTTPS 送信をサポートしていることは明らかです。ASP.NET コントロールには、アウトバウンド URL を構成できるプロパティがありますか? 最悪の場合、 Reflectorを使用してコードを調べ、どのようにビルドされているかを確認する必要があるかもしれません。

于 2010-04-14T11:27:24.263 に答える
5

.NETライブラリは、HTTPS環境で機能するための構成を必要としません。HttpContext要求がHTTPSプロトコルから行われたかどうかは、現在の情報から導き出されます。

ただし、RecaptchaControl.OverrideSecureMode期待どおりに動作しない場合に備えて使用できるプロパティがあります。TrueHTTPSモードを強制するように設定します。

更新

私はその質問を誤解したようです。(サーバーとサーバーの間で)reCAPTCHA検証用のHTTPSエンドポイントがないのではないかと思います。

于 2010-05-25T15:10:10.077 に答える