在ASP.Net中注册表格中的MS Captcha超时持续时间

我目前在注册表中使用MS Captcha。 如果表单在一分钟内提交,它的工作完美。 但有时,在填写表单后,用户会搜索要上传的文档,当他们最终提交表单时,会收到服务器错误,如下所示:

[NullReferenceException:对象引用未设置为对象的实例。] MSCaptcha.CaptchaControl.ValidateCaptcha(String userEntry)+438

在提交按钮单击时,我调用ValidateCaptcha如下:

 Captcha1.ValidateCaptcha(txtCaptcha.Text.Trim()); 

有人可以帮我处理这个例外吗? 提前致谢。

已经看到,如果您没有设置ErrorInputTooFast和ErrorInputTooSlow消息,则代码会在CaptchaMaxTimeout时间段过去时抛出’NullReferenceException’。

我也设置了以下属性,以便在没有NullReferenceException的情况下使其工作

ErrorInputTooFast =“图片文字输入太快了。” ErrorInputTooSlow =“图片文字输入太慢了。”

我的实现如下,我已将CaptchaMaxTimeout设置为20秒,看看这个问题是否仍然存在。

   

代码背后

  private void AppendValidationErrorMessage( string message) { var cv = new CustomValidator(); cv.IsValid = false; cv.ErrorMessage = message; cv.ValidationGroup = "PageValidationGroup"; this.Page.Validators.Add(cv); } protected void SubmitButtonClick(object sender, EventArgs e) { try { this.CaptchaUserControl.ValidateCaptcha(CapthaTextBox.Text.GetTrimValue()); if (!this.CaptchaUserControl.UserValidated) { this.AppendValidationErrorMessage(this.CaptchaUserControl.CustomValidatorErrorMessage); } } catch (Exception) { this.AppendValidationErrorMessage( "Captcha expired please please reload the page.Note: please copy the data before refreshing data"); } this.CapthaTextBox.Text = string.Empty; if (this.Page.IsValid) //&& this.CaptchaUserControl.UserValidated { //do something } }