驗證碼類庫CaptchaMvc


CaptchaMvc是一個有彈性的、簡單的解決方案,它能夠解決你項目中所有與驗證碼相關的問題。你需要做的所有事情就是向你的項目中添加一個類庫,添加之后驗證碼就准備就緒了。該項目擁有使用驗證碼所需要的所有內容:

  • 有兩種類型的驗證碼,普通的和數學的
  • 支持在session或者cookie中存儲驗證碼
  • 支持“智能驗證碼”
  • 能夠很容易地擴展默認實現

CaptchaMvc項目也在不斷地演變,我會盡量支持所有人提出的需求。我認為這些就是區分它和其他項目的主要內容。CaptchaMvc項目支持ASP.NET MVC 3、4和5,這些版本之間幾乎沒有什么不同,僅僅是類庫中使用了MVC 4中添加的AllowAnonymousAttribute屬性。

這個項目的智能驗證碼是特色:

智能驗證碼讓驗證碼對用戶更加友好,在最好的情況下用戶永遠不會看到驗證碼。有多種技術能夠讓驗證碼更加友好。例如,有一種技術稱為“假輸入域”。CaptchaMvc支持多種技術能夠區分用戶和機器人。讓我簡短的介紹一下每一種技術:

  • 假的輸入(類名—FakeInputIntelligencePolicy)——使用一個“假的”輸入域,正如我前面所寫的。
  • JavaScript(類名—JavaScriptIntelligencePolicy)——嘗試着去檢查用戶是否啟用了JavaScript,如果用戶禁用了JavaScript那么用戶必須輸入一個驗證碼
  • 響應時間(類名—ResponseTimeIntelligencePolicy)——允許你設置一個時間,在該時間內驗證碼將被認為無效。假如一個機器人請求一個表單,填充它並提交…頁面加載和提交之前的間隔時間可能會少於一秒——沒有人能夠做到這一點。
  • 多種方式的組合(類名—MultiIntelligencePolicy)——允許你將不同的策略聯合到一起。

設置“智能驗證碼”的代碼示例,下面是一個作者的網站上使用的代碼示例:

CaptchaUtils.CaptchaManager.IntelligencePolicy = new 
MultiIntelligencePolicy(
new FakeInputIntelligencePolicy(),
new JavaScriptIntelligencePolicy(),
new ResponseTimeIntelligencePolicy(TimeSpan.FromSeconds(3)));

采訪CaptchaMvc的創建者Vyacheslav Volkov


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM