簡體   English   中英

如何為ASP.NET MVC網站構造CAPTCHA驗證體系結構?

[英]How to structure CAPTCHA validation architecture for an ASP.NET MVC site?

我正在編寫一個ASP.NET MVC網站,當用戶提交的內容未通過我的Akismet垃圾郵件檢查時,我想在其中顯示驗證碼。 我知道如何顯示驗證碼,但是我在為此構想和規划架構時遇到了麻煩。 這是我目前在想的:

  1. 用戶通過HTTP POST提交內容
  2. 處理提交的操作運行Akismet檢查
  3. 如果Akismet檢查失敗,則該操作將調用return RedirectToAction()並將用戶發送到CAPTCHA操作
  4. CAPTCHA操作通過使用MvcReCaptcha庫顯示CAPTCHA,然后處理CAPTCHA結果
  5. 如果用戶驗證成功,則CAPTCHA操作會將用戶返回到原始操作。

我的問題是: 我應該如何設計使用戶返回原始操作狀態? 我需要以某種方式將用戶提交的數據以及原始操作的名稱攜帶到CAPTCHA操作中,以便RedirectToAction包括這兩者。

有任何想法嗎? 提前致謝。


更新:

以下是Mare的答案,該記錄與PDC 2008上一次會議的記錄有關,在該記錄中Jeff Atwood展示了Stack Overflow使用的一些驗證碼。 我要尋找的最終結果實質上是CAPTCHA在Stack Overflow上的工作方式。

Jeff顯示的驗證碼提交代碼執行以下操作:

  1. 檢查`Session [“ captcha-returnUrl”]的內容; 如果沒有內容,則returnUrl =“ /”。
  2. 驗證驗證碼提交。
  3. 如果驗證碼提交正確,則return Redirect(resultUrl);

這解決了我的部分問題。 但是,還有一些我不理解的事情:

  • 如何通過調用驗證Session["captcha-returnUrl"]的方法設置Session["captcha-returnUrl"]
  • 返回網址設置為什么? 我希望成功的CAPTCHA提交觸發用戶最初進行的表單提交-如何傳達表單路徑和表單數據?

也許您可以在PDC 08的一個舊視頻中找到一些想法,其中Jeff Atwood在Stack Overflow上談論Recaptcha的實現,該視頻位於視頻的中間位置: http ://channel9.msdn.com/pdc2008/PC21/

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM