views:

650

answers:

3

Hi,

I've customised the asp.net login control and it seems to create new accounts fine, but if I duplicate the user id thats already registered or enter an email thats already used, the error messages arn't displaying. Its driving me crazy. The page just refreshes without showing an error.

I've included the as instructed on the MSDN site but nothing. http://msdn.microsoft.com/en-us/library/ms178342.aspx

<asp:CreateUserWizard ErrorMessageStyle-BorderColor="Azure" ID="CreateUserWizard1" runat="server" ContinueDestinationPageUrl="~/home.aspx">

                        <WizardSteps>

                            <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">

                                <ContentTemplate>
                                    <asp:Literal ID="ErrorMessage" runat="server"></asp:Literal>


                                    <div class="fieldLine">
                                        <asp:Label ID="lblFirstName" runat="server" Text="First Name:" AssociatedControlID="tbxFirstName"></asp:Label>
                                        <asp:Label ID="lblLastName" runat="server" Text="Last Name:" AssociatedControlID="tbxLastName"></asp:Label>
                                    </div> 

                                    <div class="fieldLine">
                                        <asp:TextBox ID="tbxFirstName" runat="server"></asp:TextBox>
                                        <asp:TextBox ID="tbxLastName" runat="server"></asp:TextBox>
                                    </div>


                                    <asp:Label ID="lblEmail" runat="server" Text="Email:" AssociatedControlID="Email"></asp:Label>
                                    <asp:TextBox ID="Email" runat="server" CssClass="wideInput"></asp:TextBox><br />
                                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" 
                                                                runat="server" 
                                                                CssClass="aspValidator"
                                                                Display="Dynamic"
                                                                ControlToValidate="Email"
                                                                ErrorMessage="Required"></asp:RequiredFieldValidator>
                                    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" 
                                                                    runat="server" 
                                                                    Display="Dynamic"
                                                                    CssClass="aspValidator"
                                                                    ControlToValidate="Email"
                                                                    SetFocusOnError="true"
                                                                    ValidationExpression="^(?:[a-zA-Z0-9_'^&amp;/+-])+(?:\.(?:[a-zA-Z0-9_'^&amp;/+-])+)*@(?:(?:\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\.){3}(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)|(?:[a-zA-Z0-9-]+\.)+(?:[a-zA-Z]){2,}\.?)$"
                                                                    ErrorMessage="Email address not valid"></asp:RegularExpressionValidator>

                                    <asp:Label ID="lblEmailConfirm" runat="server" Text="Confirm Email Address:" AssociatedControlID="tbxEmailConfirm"></asp:Label>
                                    <asp:TextBox ID="tbxEmailConfirm" runat="server" CssClass="wideInput"></asp:TextBox><br />
                                    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" 
                                                                runat="server" 
                                                                CssClass="aspValidator"
                                                                Display="Dynamic"
                                                                ControlToValidate="tbxEmailConfirm"
                                                                ErrorMessage="Required"></asp:RequiredFieldValidator>
                                    <asp:RegularExpressionValidator ID="RegularExpressionValidator2" 
                                                                    runat="server" 
                                                                    Display="Dynamic"
                                                                    CssClass="aspValidator"
                                                                    ControlToValidate="tbxEmailConfirm"
                                                                    SetFocusOnError="true"
                                                                    ValidationExpression="^(?:[a-zA-Z0-9_'^&amp;/+-])+(?:\.(?:[a-zA-Z0-9_'^&amp;/+-])+)*@(?:(?:\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\.){3}(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)|(?:[a-zA-Z0-9-]+\.)+(?:[a-zA-Z]){2,}\.?)$"
                                                                    ErrorMessage="Email address not valid"></asp:RegularExpressionValidator>
                                    <asp:CompareValidator ID="CompareValidator1" 
                                                          runat="server" 
                                                          Display="Dynamic"
                                                          SetFocusOnError="true"
                                                          CssClass="aspValidator"
                                                          ControlToCompare="Email"
                                                          ControlToValidate="tbxEmailConfirm"
                                                          ErrorMessage="Email address' do not match"></asp:CompareValidator>

                                    <asp:Label ID="lblUsername" runat="server" Text="Username:" AssociatedControlID="UserName"></asp:Label>
                                    <asp:TextBox ID="UserName" runat="server" MaxLength="12"></asp:TextBox><br />
                                    <asp:CustomValidator ID="CustomValidatorUserName" 
                                                         runat="server" 
                                                         Display="Dynamic"
                                                         SetFocusOnError="true"
                                                         CssClass="aspValidator"
                                                         ValidateEmptyText="true"
                                                         ControlToValidate="UserName"
                                                         ErrorMessage="Username can be between 6 and 12 characters."
                                                         ClientValidationFunction="ValidateLength"
                                                         OnServerValidate="ValidateUserName"></asp:CustomValidator>

                                    <div class="fieldLine">
                                        <asp:Label ID="lblPassword" runat="server" Text="Password:" AssociatedControlID="Password"></asp:Label> 
                                        <asp:Label ID="lblPasswordConfirm" runat="server" Text="Confirm Password:" AssociatedControlID="ConfirmPassword" CssClass="confirmPassword"></asp:Label> 
                                    </div>

                                    <div class="fieldLine">
                                        <asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox>
                                        <asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password"></asp:TextBox><br />
                                        <asp:CustomValidator ID="CustomValidatorPassword" 
                                                         runat="server" 
                                                         Display="Dynamic"
                                                         SetFocusOnError="true"
                                                         CssClass="aspValidator"
                                                         ControlToValidate="Password"
                                                         ValidateEmptyText="true" 
                                                         ErrorMessage="Password can be between 6 and 12 characters"
                                                         ClientValidationFunction="ValidateLength"
                                                         OnServerValidate="ValidatePassword"></asp:CustomValidator>
                                        <asp:CustomValidator ID="CustomValidatorConfirmPassword" 
                                                         runat="server" 
                                                         Display="Dynamic"
                                                         SetFocusOnError="true"
                                                         CssClass="aspValidator"
                                                         ControlToValidate="ConfirmPassword"
                                                         ValidateEmptyText="true" 
                                                         ErrorMessage="Password can be between 6 and 12 characters"
                                                         ClientValidationFunction="ValidateLength"
                                                         OnServerValidate="ValidatePassword"></asp:CustomValidator>
                                          <asp:CompareValidator ID="CompareValidator2" 
                                                          runat="server" 
                                                          Enabled="false"
                                                          Display="Dynamic"
                                                          SetFocusOnError="true"
                                                          CssClass="aspValidator"
                                                          ControlToCompare="Password"
                                                          ControlToValidate="ConfirmPassword"
                                                          ErrorMessage="Passwords do not match"></asp:CompareValidator>  
                                    </div>

                                    <asp:Label ID="lblCaptch" runat="server" Text="Captcha:" AssociatedControlID="imgCaptcha"></asp:Label>
                                    <div class="borderBlue" style="width:200px;">
                                        <asp:Image ID="imgCaptcha" runat="server" ImageUrl="~/JpegImage.aspx" /><br />                                    
                                    </div>

                                    <asp:TextBox ID="tbxCaptcha" runat="server" CssClass="captchaText"></asp:TextBox>
                                    <asp:RequiredFieldValidator ControlToValidate="tbxCaptcha" 
                                                                CssClass="aspValidator" 
                                                                ID="RequiredFieldValidator3" 
                                                                runat="server" 
                                                                ErrorMessage="Required"></asp:RequiredFieldValidator>
                                    <asp:CustomValidator ID="CustomValidator1" ControlToValidate="tbxCaptcha"
                                                         runat="server" OnServerValidate="ValidateCaptcha" ErrorMessage="Captcha incorrect"></asp:CustomValidator>
                                </ContentTemplate>

                                <CustomNavigationTemplate>
                                    <div style="float:left;">
                                        <asp:Button ID="CreateUser" runat="server" Text="Register Now!" 
                                                    CausesValidation="true" CommandName="CreateUser" OnCommand="CreateUserClick" CssClass="registerButton" />
                                    </div>
                                </CustomNavigationTemplate>
                            </asp:CreateUserWizardStep>

                            <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
                                <ContentTemplate>
                                    <table border="0" style="font-size: 100%; font-family: Verdana" id="TABLE1" >
                                        <tr>
                                            <td align="center" colspan="2" style="font-weight: bold; color: white; background-color: #5d7b9d; height: 18px;">
                                                Complete</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                Your account has been successfully created.<br />
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="right" colspan="2">
                                                <asp:Button ID="Button1" PostBackUrl="~/home.aspx" runat="server" Text="Button" />
                                            </td>
                                        </tr>
                                    </table>
                                </ContentTemplate>
                            </asp:CompleteWizardStep>
                        </WizardSteps>
                    </asp:CreateUserWizard>
A: 

In the MSDN example there's code in the codebehind that checks for an existing user. Do you have similar code in your app?

Andy Gaskell
A: 

Solution found. It seems the the button in the CustomNavigationTemplate section needed a command argument of 'MoveNext' and the button ID had to by StepNextButtonButton. I found this out by letting the control render itself without any customization and then looked into its properties.

Hope this helps someone.

Sir Psycho
A: 

create a function for sending mail in asp.net & use try & catch function for get error in your user control if any error found then error automatically send to your id

use this function if you use gmail

// declare variable for sending mail string tomail = your gmail id string subject = error found in user control string body = exception in your user control

    // send a mail by gmail account


    System.Net.Mail.MailMessage MyMailMessage =
        new System.Net.Mail.MailMessage("xyz.com", tomail,

subject, body); MyMailMessage.IsBodyHtml = false;

    //Proper Authentication Details need to be passed when sending email from gmail
    System.Net.NetworkCredential mailAuthentication = new
    System.Net.NetworkCredential("[email protected]", "password");
    //Smtp Mail server of Gmail is "smpt.gmail.com" and it uses port no. 587
    //For different server like yahoo this details changes and you can
    //get it from respective server.
    System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587);
    //Enable SSL

    mailClient.EnableSsl = true;

    mailClient.UseDefaultCredentials = false;

    mailClient.Credentials = mailAuthentication;

    try
    {

        mailClient.Send(MyMailMessage);
    }
    catch (System.Net.Mail.SmtpException ex)
    {
        Response.Write(ex.ToString());
    }
}