2016-04-11 8 views
2

私は、keith-wood.name/realPerson.htmlでjQuery Real Personを使用しています。しかし、設定およびテストした後、それは、コードmvc razor asp.netビューでjquery実際の人を使用する方法?

public ActionResult UploadProfile(TestModel capcha_demo) 
{ 
     var salt = 12345; 
     if (rpHash(capcha_demo.defaultReal + salt) != Request.Form["realPersonHash"]) 
     { 
      ViewBag.Message = "Capcha wrong"; 
     } 
} 
スニペットないwork.Asが従うだ、それはOKですのでview.Lookでスニペットのコードでは、show capcha
$('.realperson_text').realperson({ 
 
     length: 6, 
 
     chars: $.realperson.alphanumeric 
 
});
<div class="form-group input-group-sm"> 
 
        <h5>Capcha</h5> 
 
        <div class="realperson_text"></div> 
 
        @Html.TextBoxFor(p => p.defaultReal, new { @class = "form-control text-uppercase", @placeholder = "type capcha code", @maxlength = "6" }) 
 
</div>

enter image description hereそして、これはアクションです

ええ、ホームページのデモとして、私はRequest.Form["realPersonHash"]は何であるかわかりません。 どうすれば入手できるのか教えていただけますか?

+3

これは、わかりにくい種類のライブラリです。本当の答えを得るには、開発者と一緒に取り上げる必要があります。しかし、GoogleのReCAPTCHA(https://www.google.com/recaptcha/intro/index.html)のように、もう少し標準的で実証済みのものを使用することで最も効果的です。愚かに実装するのは簡単ですが、問題がある場合は豊富なコミュニティサポートを受けることになります。さらに、文字と数字の文字列を入力するのではなく、ユーザーが簡単にクリックするだけで済みます。 –

+0

'var salt = 12345;にデバッグポイントを置くと、' capcha_demo'パラメータに何が入っていますか?おそらく 'realPersonH​​ash'がそこにありますか? – Blindsyde

+0

また、あなたがテキストを作ることができないテキストベースのCAPTCHAでさえ、90%以上の時間をかけてボットに打ち勝つことができるということも言及する価値があります。 Googleは、ストリートビューに使用されている無関係なテキスト検出APIをオープンソース化することで、古いCAPTCHAを著名に破った。あなたがここに持っているCAPTCHAは、ボットが解読するのが非常に簡単です。 –

答えて

0

このプラグインを使用すると、フォーム送信前に要素を追加することができます。プラグインのコードjquery.realperson.jsライン112で

あなたはこのコードを持っている:

on('submit.' + inst.name, function() { 
       var name = inst.options.hashName.replace(/\{n\}/, elem.attr('name')); 
       var form = $(this); 
       form.find('input[name="' + name + '"]').remove(); 
       form.append('<input type="hidden" class="' + self._hashClass + '" name="' + name + 
        '" value="' + hash(text + salt) + '">'); 
       setTimeout(function() { 
        form.find('input[name="' + name + '"]').remove(); 
       }, 0); 
      }); 
あなたはそれが入力(form.append)を追加し、それを削除することがわかります

直後提出を

form.find('input[name="' + name + '"]').remove(); 

これはすべてのトリックです!

+0

いいえ、あなたの入力に依存します – Ygalbel

+0

ああ、確かに、私がChromeでdevtoolを開くと、私は 'Content-Disposition:form-data; name = "defaultReal" an98ckコンテンツ - 配置:フォームデータ。 name = "undefinedHash" -1524496973'。私はこの場合、 'if(rpHash(capcha_demo.defaultReal + salt)!= Request.Form [" undefinedHash "])'に従ってみるべきだと思います。あなたはどう ? –

+0

入力テキストにデータを入力しましたか? – Ygalbel

関連する問題