繁体   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