This is a migrated thread and some comments may be shown as answers.

Captcha Validation no working

1 Answer 139 Views
Captcha
This is a migrated thread and some comments may be shown as answers.
Bryan Hughes
Top achievements
Rank 1
Bryan Hughes asked on 01 Mar 2013, 12:36 AM
I have form that uses validation summary, textbox (with required validator and custom validator), captcha and submit button.  All validators, including captcha are using group.  EnableClientScript=False.  The custom validator does a sever side check to see if email is in system.

If the custom validator is false the Capthca validator also works, but if custom validator is true then captcha never validates.  I am assuming I need to fire server side validation for Captcha, but not sure how I should do it.

Here is page
<%@ Page Language="VB" Title="Password Recovery" MasterPageFile="~/Default.master" Theme="Default" AutoEventWireup="false" CodeFile="PasswordRecovery.aspx.vb" Inherits="PasswordRecovery" %>
<asp:Content ID="Content1" ContentPlaceHolderID="navigationcontent" Runat="Server">
    <a class="navigationitem" href="default.aspx">Home</a>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="body" Runat="Server">
    <div class="contentbox1" style="width: 350px;">
        <h2>Password Recovery</h2>
        <div class="contentbox2">
            <asp:literal ID="litins" runat="server" Text="Enter your email to receive password recover information.<br /><br />" />
            <div class="contentbox3">
                <asp:Panel ID="pan1" runat="server">
                <div>
                    <asp:ValidationSummary ID="ValidationSummary1" runat="server" ValidationGroup="SubmitInfo" EnableClientScript="False" HeaderText="Please correct the following errors:" />
                </div>
                <table border="0" cellpadding="2" cellspacing="2">
                    <tr>
                        <td>Email:</td>
                        <td>
                            <asp:TextBox ID="txtemail" runat="server" Width="200px" />
                            <asp:RequiredFieldValidator ID="rfv1" runat="server" EnableClientScript="false" ValidationGroup="SubmitInfo" ControlToValidate="txtemail" ErrorMessage="Please fill in email."
                            Display="Dynamic" Text="*"/><asp:CustomValidator ID="cvEmail" runat="server"
                                ErrorMessage="Email does not exist in the system." Display="Static" ControlToValidate="txtEmail" Text="*" ValidationGroup="SubmitInfo" ValidateEmptyText="false"
                                EnableClientScript="false"></asp:CustomValidator>
                        </td>
                    </tr>
                    <tr>
                        <td> </td>
                        <td> </td>
                    </tr>
                    <tr>
                        <td> </td>
                        <td>
                            <telerik:RadCaptcha ID="radc1" runat="server"
                                CaptchaImage-BackgroundNoise="Medium" 
                                CaptchaImage-FontWarp="Medium"
                                CaptchaImage-LineNoise="Low"
                                CaptchaImage-TextLength="6"
                                Enabled="true"
                                CssClass="captcha"
                                EnableRefreshImage="true" IgnoreCase="true" Visible="true" ToolTip="Code is not case sensitive"
                                 
                                CaptchaTextBoxLabel="<br />Type the code from the image<br />(not case sensitive)<br />"
                                CaptchaImage-TextChars="Letters" BorderStyle="Solid" BorderWidth="1"
                                BorderColor="#0099CC"                                            
                                CaptchaImage-CharSet="ABCDEFGHJKLMNOPQRSTUVWXYZ"
                                CaptchaImage-UseRandomFont="False" ValidationGroup="SubmitInfo"
                                ErrorMessage="The code you entered is not valid." Display="None"/>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" align="right">
                            <asp:Button ID="btnsubmit" runat="server" text="Send" ValidationGroup="SubmitInfo" CausesValidation="true" />
                        </td>
                    </tr>
                </table>
                </asp:Panel>
                <asp:Panel ID="pan2" runat="server" Visible="false">
                    <div style="padding:20px 0px 20px 0px;">
                    An email has been sent.  Please follow the instructions in the email to recover your password.
                    </div>
                </asp:Panel>
            </div>
        </div>
    </div>
    <div style="clear: both;"></div>
    <!-- Begin DigiCert/ClickID site seal HTML and JavaScript -->
<div id="DigiCertClickID_OzSLC-hR" data-language="en_US" style="width: 100px; margin: 5px 5px 5px auto;">
    <a href="http://www.digicert.com/ev-ssl-certification.htm">SSL Certificates</a>
</div>
<script type="text/javascript">
    var __dcid = __dcid || []; __dcid.push(["DigiCertClickID_OzSLC-hR", "7", "m", "black", "OzSLC-hR"]); (function () { var cid = document.createElement("script"); cid.async = true; cid.src = "//seal.digicert.com/seals/cascade/seal.min.js"; var s = document.getElementsByTagName("script"); var ls = s[(s.length - 1)]; ls.parentNode.insertBefore(cid, ls.nextSibling); } ());
</script>
<!-- End DigiCert/ClickID site seal HTML and JavaScript -->
    <div style="clear: both;"></div>
</asp:Content>

Here is code behind
Partial Class PasswordRecovery
    Inherits System.Web.UI.Page
 
    Sub clickhere(ByVal sender As Object, ByVal e As EventArgs) Handles btnsubmit.Click
        Dim mm As Net.Mail.MailMessage = New Net.Mail.MailMessage()
        Dim smtpClient As Net.Mail.SmtpClient = New Net.Mail.SmtpClient()
        Dim body As String = ""
        Dim group As String = ""
        Dim toadd As Net.Mail.MailAddress
        Dim catchaText
        Try
            toadd = New Net.Mail.MailAddress(txtemail.Text)
            cvEmail.IsValid = True
        Catch ex As Exception
            cvEmail.IsValid = False
            'lblerror.Visible = True
            'lblerror.Text = "Invalid Email"
            Exit Sub
        End Try
 
        Dim mu As MembershipUser
        Dim userName As String = ""
        Try
            userName = Membership.GetUserNameByEmail(txtemail.Text)
            mu = Membership.GetUser(userName)
            cvEmail.IsValid = True
        Catch ex As Exception
            cvEmail.IsValid = False
            'lblerror.Visible = True
            Exit Sub
        End Try
 
 
        Dim ut As New UserToken
        ut.UserID = mu.ProviderUserKey
        ut.DateIssued = Now
        ut.Token = Guid.NewGuid
        ut.AddUserToken()
 
        Dim expdate As DateTime = ut.DateIssued.AddHours(48)
 
        Dim fromadd As New Net.Mail.MailAddress("Password-Recovery@wishfamilyjournal.org")
        Dim fromaddress As String = ConfigurationManager.AppSettings("ServerSendAddress").ToString
        mm = New Net.Mail.MailMessage(fromadd, toadd)
        mm.Subject = "WISH Family Journal Password Recovery"
        mm.Body = "A request to change your password has been issued.<br/><br/>" & _
          "Please <a href='" & ConfigurationManager.AppSettings("SiteUrl").ToString & "passwordreset.aspx?token=" & ut.Token.ToString & "'>CLICK HERE TO CHANGE YOUR PASSWORD</a><br/><br/>" & _
          "This link is only valid for 48 hours (" & expdate.ToShortDateString & " " & expdate.ToShortTimeString & ").  If you did not request a password change please ignore this email<br/><br/>" & _
          "If you have any problems or questions please respond to this email.<br/><br/>" & _
          "Thank you<br/>" & _
          "WISH Family Journal Administrator"
        mm.IsBodyHtml = True
        smtpClient.Timeout = 5000
        smtpClient.Send(mm)
        mm.Dispose()
 
        pan1.Visible = False
        pan2.Visible = True
        litins.Visible = False
    End Sub
     
 
End Class


How can I check if captcha is also valid?

Thank you,
Bryan

1 Answer, 1 is accepted

Sort by
0
Bryan Hughes
Top achievements
Rank 1
answered on 01 Mar 2013, 07:16 PM
I figured it out

I just added
radcaptcha1.Validate()
Page.Validate("SubmitInfo")
If Not radcaptcha1.IsValid Then
    Exit Sub
End If

Works Great.
Tags
Captcha
Asked by
Bryan Hughes
Top achievements
Rank 1
Answers by
Bryan Hughes
Top achievements
Rank 1
Share this question
or