2016-12-12 13 views
0

ASP.NET MVC 4アプリケーションでCaptchaを追加しました。通常、キャプチャを初めて読み込むには時間がかかります。それで完璧なスピードでうまくいっています。しかし初めて、時間がかかります。ここでMVC4アプリケーションでCaptchaを高速にロードするには?

は私CADEです:?誰が(DLLまたは何か他のものをロードすることによって)より速く、それをロードするために私を提案することができます

DLL: SRVTextToImage 

CSTML:

<script> 
$(document).ready(function() { 
    img = document.getElementById("img_captcha"); 
    var d = new Date(); 
    var n = d.getTime(); 
    debugger; 
    @*img.src='@Url.Action("GetCaptchImage", "Contact")?'+n;*@ 
    $.ajax({ 
     url: '@Url.Action("GetCaptchImage", "Contact")?'+n, 
    }).done(function(response) { 
     var filePath = "contact/GetCaptchImage?"+n; 
     img.src=filePath; 
     document.getElementById('span_loading').style.display = 'none'; 
     document.getElementById('img_captcha').style.display = 'inline-block'; 
    }); 
</script> 

<img src="" id="img_captcha" style="width: 200px;display: none;vertical-align: middle;" /> 

コントローラー:

[HttpGet] 
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")] 
public FileResult GetCaptchImage() 
{ 
    CaptchaRandomImage CI = new CaptchaRandomImage(); 
    this.Session["CaptchaImageText"] = CI.GetRandomString(5); 
    CI.GenerateImage(this.Session["CaptchaImageText"].ToString(), 300, 75, Color.DarkGray, Color.White); 
    MemoryStream stream = new MemoryStream(); 
    CI.Image.Save(stream, ImageFormat.Png); 
    stream.Seek(0, SeekOrigin.Begin); 
    return new FileStreamResult(stream, "image/png"); 
} 

答えて

0

私はRecaptchaを統合するための別の簡単なソリューションを持っています。使いやすく統合しやすいGoogle Recaptureをお試しください。

移動先:Google Recaptcha

あなたは、次のように使用するサイトのキーを提供する新しいサイトを登録します。

は、あなたのHTMLテンプレートの終了タグの前にこのスニペットを貼り付けます。

<script src='https://www.google.com/recaptcha/api.js'></script> 

あなたがreCAPTCHAのウィジェットを表示する場所の終わりに、このスニペットを貼り付けます。

<div class="g-recaptcha" data-sitekey="Your recaptcha Sitekey"></div> 

また、Recaptchaキーを作成するときに、キー設定にドメインを追加することを忘れないでください。

関連する問題