ASP.NET recaptcha コントロールの使用を開始しましたが、正常に動作します。ただし、必要な要件の 1 つは、すべてのアウトバウンド トラフィックが Https を経由することです。
recaptcha が https をサポートしていることは知っていますが、ASP.NET プラグイン オプションを使用する場合の構成方法 (構成可能であっても) が明確ではありません。
誰かがこれを経験したことがありますか?
これまでに見つけたものを少し拡張します....
Recaptcha パッケージには 3 つの公開クラスが含まれています
RecaptchaControl,
RecaptchaValidator
と
RecaptchaResponse
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();
}