내가 여기에서 찾을 수있는 .NET 1.1 프로젝트에 reCAPTCHA를 검사기의 이전 버전을 사용하려고에서 : http://recaptcha.googlecode.com/svn/trunk/recaptcha-plugins/dotnet-old/src/Recaptcha/reCAPTCHA를 검사기 .NET 1.1 프로젝트
내가 가진 코드는 예와 매우 유사합니다
<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" />
싶습니다 동작은 간단하다 : 그은 위의 링크에서 확인하실 수 있습니다 페이지로드, 사용자가 자신의 이메일 주소를 입력하는 필드가 표시되어, 보안 문자를 완료하고 버튼을 제출 . 제출시 해당 이메일 주소로 데이터베이스에 사용자가 없거나 보안 문자 입력이 잘못되면 새 보안 문자가 적절한 오류 메시지와 함께 표시됩니다. 그렇지 않으면 비밀번호를 재설정하는 방법에 대한 이메일을 받게됩니다.
주요 문제는 captcha가 페이지로드에 표시되지 않는다는 것입니다. 그러나 제출 버튼을 눌렀을 때 Page.Validate()가 실행되면 페이지가 다시로드되고 보안 문자가 표시됩니다.
이것을 바탕으로 다른 접근 방식을 시도하고 페이지로드 이벤트에서 Page.Validate()를 호출하여 초기에 captcha를 표시하도록했습니다. 이것은 거의 효과가있었습니다 : captcha가 첫 번째 페이지로드에 표시되었지만 올바른 captcha 응답과 함께 잘못된 이메일이 제출되면 페이지가 다시로드 될 때 captcha가 사라지지만 물론 이메일을 보낼 수 없습니다.
페이지가 처음에 표시 될 때 captcha가 렌더링되도록하거나, 유효하지 않은 이메일 주소가 입력되었을 때 captcha가 제출되지 않도록하려면 어떻게해야합니까?