Я пытаюсь использовать старую версию Recaptcha Validator для проекта .net 1.1, которую можно найти здесь: http://recaptcha.googlecode.com/svn/trunk/recaptcha-plugins/dotnet-old/src/Recaptcha/
Код, который я имею, очень похож на пример, который можно найти по ссылке выше:
<asp:TextBox ID="EmailAddress" runat="server"></asp:TextBox>
<recatpcha:RecaptchaValidator ID="RecaptchaValidator1" runat="server" Theme="Clean" PublicKey="xxxxxxxxxxxxxx" PrivateKey="xxxxxxxxxx" ControlToValidate="EmailAddress"></recatpcha:RecaptchaValidator>
<asp:Button ID="Button1" runat="server" Text="Button" CausesValidation="true" OnClick="Button1_Click" />
Мне нужно простое поведение: при загрузке страницы пользователю предоставляется поле для ввода адреса электронной почты, контрольный код для завершения и кнопка отправки. При отправке, если в нашей базе данных не найден пользователь с таким адресом электронной почты или введен неправильный ответ на код проверки, отображается новый код проверки с соответствующим сообщением об ошибке. В противном случае они получат электронное письмо о том, как сбросить пароль.
Основная проблема заключается в том, что капча не отображается при загрузке страницы. Однако когда я нажимаю кнопку отправки, вызывая Page.Validate (), страница перезагружается и отображается капча.
Исходя из этого, я решил, что попробую другой подход и вызову Page.Validate () в событии загрузки страницы, чтобы капча отображалась изначально. Это почти сработало: капча показалась при первой загрузке страницы, но когда отправлено недействительное письмо вместе с правильным ответом капчи, капча пропадает при перезагрузке страницы, но, конечно, письмо не может быть отправлено.
Как я могу принудительно заставить капчу отображаться при первом обращении к странице, или предотвратить отправку капчи при вводе неверного адреса электронной почты?