我在 asp.net 4.0 网络应用程序中使用 MSCaptcha 控件。我已在 Bin 文件夹中提供了 .dll 和 .xml 文件,并在页面顶部添加了<%@ Register Assembly="MSCaptcha" Namespace="MSCaptcha" TagPrefix="cc1" %>
。
这就是我在页面中使用它的方式:
<cc1:CaptchaControl ID="Captcha1" runat="server"
CaptchaBackgroundNoise="Low" CaptchaLength="4"
CaptchaHeight="60" CaptchaWidth="300"
CaptchaLineNoise="None" CaptchaMinTimeout="1"
CaptchaMaxTimeout="240" FontColor = "#529E00" />
在后面的代码中我使用它:
If Page.FindControl("Captcha1").ToString = "MSCaptcha.CaptchaControl" Then
Captcha1.ValidateCaptcha(webCaptcha.Text.Trim())
If Captcha1.UserValidated Then
addComment()
Else
webWrongCaptcha.Text = "Captcha is wrong!"
End If
Else
Response.Redirect("contact.aspx?c=e")
End If
但如果用户点击CaptchaMaxTimeout
之后的按钮
Line 7: Captcha1.ValidateCaptcha(webCaptcha.Text.Trim())
我该如何解决?
答案 0 :(得分:0)
在调用它的属性之前,在一个确定Captcha是否为空的语句中包装你的逻辑。如果是,请通过向客户端发送消息来处理错误,让他们知道他们超过了超时,他们需要再试一次。
答案 1 :(得分:0)
将EnableViewState =“False”添加到代码中: