2009-08-15 9 views
0

J'ai personnalisé le contrôle de connexion asp.net et il semble créer de nouveaux comptes bien, mais si je duplique l'identifiant de l'utilisateur qui est déjà enregistré ou entrez un email qui est déjà utilisé, les messages d'erreur ne sont pas affichés. Ça me rend fou. La page est juste actualisée sans montrer d'erreur.Un problème avec le contrôle utilisateur créer asp.net

J'ai inclus le comme indiqué sur le site MSDN mais rien. 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> 
+0

pouvez-vous lier aux documents MSDN auxquels vous avez fait référence? –

Répondre

0

Solution trouvée. Il semble que le bouton dans la section CustomNavigationTemplate nécessitait un argument de commande de 'MoveNext' et l'ID de bouton dû à StepNextButtonButton. J'ai découvert cela en laissant le contrôle se rendre lui-même sans aucune personnalisation et ensuite examiné ses propriétés.

Espérons que cela aide quelqu'un.

0

Dans l'exemple MSDN il y a code dans le code-behind qui vérifie un utilisateur existant. Avez-vous un code similaire dans votre application?

0

créer une fonction pour envoyer du courrier en asp.net & utilisation essayer & fonction de capture d'erreur get dans votre contrôle utilisateur si une erreur est rencontrée, erreur envoie automatiquement à votre identifiant

utiliser cette fonction si vous utilisez gmail

// déclarer variable pour l'envoi de courrier chaîne tomail = votre identifiant gmail chaîne subject = erreur trouvée dans le contrôle de l'utilisateur corps string = exception dans votre contrôle utilisateur

// send a mail by gmail account 


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

sujet, corps); 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()); 
    } 
} 
Questions connexes