文章出處

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


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()