Question

Im un débutant dans le monde de l'ASP et C #, je viens de créer mon premier formulaire d'inscription à l'aide du fournisseur et des membres CreateUserWizard mis en place les validateurs qui excellent travail, de l'Appart « Nom d'utilisateur ». Si le nom d'utilisateur est pris simplement la page et rafraîchit pas d'erreur apparaît serait greatfull si Somone realy pourrait indiquer où je pourrais aller mal.

Voici mon code actuel:

SCRIPT

protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
    /* User is created and setting extra parameters to profile */
    TextBox UserNameTextBox = (TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("UserName");
    string username = UserNameTextBox.Text;

    MembershipUser User = Membership.GetUser(username);
    umbraco.cms.businesslogic.member.Member member = new umbraco.cms.businesslogic.member.Member((int)User.ProviderUserKey);

    /* Here you can access properties for the member */
    umbraco.cms.businesslogic.property.Property FullNameProperty = member.getProperty("fullname"); // Property alias
    TextBox FullNameTextBox = (TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("FullName");
    FullNameProperty.Value = FullNameTextBox.Text;

    Roles.AddUserToRole(CreateUserWizard1.UserName, "NuneatonMember");
}
protected void CreateUserWizard1_ContinueButtonClick(object sender, EventArgs e)
{
    Response.Redirect("/member-area.aspx");
}

Contenu

<form runat="server">
 <asp:CreateUserWizard ID="CreateUserWizard1" OnContinueButtonClick="CreateUserWizard1_ContinueButtonClick" OnCreatedUser="CreateUserWizard1_CreatedUser" runat="server">
     <WizardSteps>
         <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
   <ContentTemplate>

    First Name :<asp:TextBox Runat="server" ID="FullName" CssClass="user_info"></asp:TextBox>
    <asp:RequiredFieldValidator ID="FullNameVal" runat="server" ControlToValidate="FullName" Display="Dynamic" ErrorMessage="RequiredFieldValidator" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
    <br/>

    Last Name :<asp:TextBox Runat="server" ID="LastName" CssClass="user_info"></asp:TextBox>
    <asp:RequiredFieldValidator ID="LastNameVal" runat="server" ControlToValidate="LastName" Display="Dynamic" ErrorMessage="RequiredFieldValidator" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
    <br/>

    Username :<asp:TextBox Runat="server" ID="UserName" CssClass="user_info"></asp:TextBox>
    <asp:RequiredFieldValidator ID="UserNameVal" runat="server" ControlToValidate="UserName" Display="Dynamic" ErrorMessage="RequiredFieldValidator" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
    <br/>

    E-mail :<asp:TextBox Runat="server" ID="Email" CssClass="user_info"></asp:TextBox>
    <asp:RequiredFieldValidator ID="EmailVal" runat="server" ControlToValidate="Email" Display="Dynamic" ErrorMessage="RequiredFieldValidator" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
    <asp:RegularExpressionValidator id="valRegEx" runat="server" ControlToValidate="Email" ValidationExpression=".*@.*\..*" ErrorMessage="* is not a valid e-mail address." ValidationGroup="CreateUserWizard1" display="dynamic"></asp:RegularExpressionValidator>
    <br/>

    Password :<asp:TextBox Runat="server" ID="Password" CssClass="user_info"></asp:TextBox>
    <asp:RequiredFieldValidator ID="PasswordVal" runat="server" ControlToValidate="Password" Display="Dynamic" ErrorMessage="RequiredFieldValidator" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
    <br/>

    Confirm Password :<asp:TextBox Runat="server" ID="ConfirmPassword" CssClass="user_info"></asp:TextBox>
    <asp:RequiredFieldValidator ID="PConfirmVal" runat="server" ControlToValidate="ConfirmPassword" Display="Dynamic" ErrorMessage="RequiredFieldValidator" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
    <br/>

    <asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword" Display="Dynamic" ValidationGroup="CreateUserWizard1" ErrorMessage="Foul: Password and Confirmation Password do not match. Fix them."></asp:CompareValidator>

    <asp:literal runat="server" enableviewstate="true" id="FailureText"></asp:literal>

   </ContentTemplate>
  </asp:CreateUserWizardStep>
         <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server"></asp:CompleteWizardStep>
     </WizardSteps>
</asp:CreateUserWizard> 

Était-ce utile?

La solution

Vous devez ajouter un gestionnaire d'erreur.

<asp:CreateUserWizard ID="CreateUserWizard1" 
      OnContinueButtonClick="CreateUserWizard1_ContinueButtonClick"  
      OnCreatedUser="CreateUserWizard1_CreatedUser" runat="server" 
      OnCreateUserError="createUserWizard_CreateUserError">

Et un exemple de la façon dont vous pouvez le mettre en œuvre.

protected void createUserWizard_CreateUserError(object sender, CreateUserErrorEventArgs arguments)
{
    LogCreateUserError(arguments.CreateUserError, "no user info");
}

 private void LogCreateUserError(MembershipCreateStatus status, string username)
{
    string reasonText = status.ToString();

    switch (status)
    {
        case MembershipCreateStatus.DuplicateEmail:
        case MembershipCreateStatus.DuplicateProviderUserKey:
        case MembershipCreateStatus.DuplicateUserName:

            reasonText = "The user details you entered are already registered.";
            break;

        case MembershipCreateStatus.InvalidAnswer:
        case MembershipCreateStatus.InvalidEmail:
        case MembershipCreateStatus.InvalidProviderUserKey:
        case MembershipCreateStatus.InvalidQuestion:
        case MembershipCreateStatus.InvalidUserName:
        case MembershipCreateStatus.InvalidPassword:

            reasonText = string.Format("The {0} provided was invalid.", status.ToString().Substring(7));
            break;
        default:
            reasonText = "Due to an unknown problem, we were not able to register you at this time";
            break;

    }
   //DO whatever with it.. ....

}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top