Frage

Ich bin ein Neuling in der Welt von ASP und C#. Ich habe gerade mein erstes Registrierungsformular mit dem CreateUserWizard -Mitgliedschaftsanbieter erstellt und die Validatoren eingerichtet, die hervorragend funktionieren, reichlich vom "Benutzernamen". Wenn der Benutzername genommen wird, wird die Seite einfach aktualisiert und es wird kein Fehler erscheint, wenn jemand darauf hinweisen könnte, wo ich falsch lagen könnte.

Hier ist mein aktueller Code:

SKRIPT

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");
}

INHALT

<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> 

War es hilfreich?

Lösung

Sie müssen einen Fehlerhandler hinzufügen.

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

Und ein Beispiel dafür, wie Sie es implementieren können.

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.. ....

}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top