拒绝机器人自动提交程序的控件
本人感觉不实用,不如图片验证系统.
NoBot 属性说明
NoBot 控件在页面中是完全不可见的。不过从增强用户体验的角度来看,NoBot却的确是一大进步,它也正符合了Ajax的最根本设计目标——提高用户体验。
声明NoBot控件的语法将类似如下所示:
<ajaxToolkit:NoBot
ID="noBot"
runat="server"
ResponseMinimumDelaySeconds="2"
CutoffWindowSeconds="60"
CutoffMaximumInstances="5"
OnGenerateChallengeAndResponse="noBot_GenerateChallengeAndResponse" />
- ResponseMinimumDelaySeconds : 一个合理的客户端从开始接受页面到提交表单的时间间隔,单位为秒。在该时间段之内的提交将被认为是机器人所为。
- CutoffWindowSeconds :指定一个统计同一客户端提交次数的窗口时间段,单位为秒。在该时间段之内的提交次数超过 CutoffMaximumInstances 所指定的值将被认为是机器人所为。
- CutoffMaximumInstances :指定在窗口时间段内同一客户端最多的提交次数。在 CutoffWindowSeconds 所指定的时间段之内的提交次数超过该值将被认为是机器人所为。
- OnGenerateChallengeAndResponse :指定 GenerateChallengeAndResponse 事件的处理函数。在该事件处理函数中我们可以设定强制浏览器执行的一段 JavaScript 以及其预期的执行结果。若浏览器的执行结果和预期结果不符,则本次提交将被认为是机器人所为。