1

我在asp.net 4.0 Web 应用程序中使用MSCaptcha控件。我已将提供的.dll.xml文件放在Bin文件夹中并添加到页面顶部。这就是我在页面中使用它的方式:<%@ 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())

我该如何解决?

4

2 回答 2

0

在调用它的属性之前,将您的逻辑包装在一个确定验证码是否为空的语句中。如果是,则通过向客户端发送消息来处理错误,让他们知道他们超过了超时并且他们需要重试。

于 2013-04-12T20:16:29.947 回答
0

将 EnableViewState="False" 添加到代码中:

于 2015-09-22T17:48:06.680 回答