I am adding some regex with the register user steps, they are working because the '*' is being displayed but the Wizard will still let me create an account with errors of regex.
1. I tried to redo the wizard
2. Changing some features but nothing
Page Source
<asp:CreateUserWizard ID="RegisterUser" runat="server" CssClass="gridviewUsers"
oncreateduser="RegisterUser_CreatedUser1">
<WizardSteps>
<asp:CreateUserWizardStep runat="server">
<ContentTemplate>
<table>
<tr>
<td align="center" colspan="2">
Sign Up for Your New Account</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User Name:</asp:Label>
</td>
<td>
<asp:TextBox ID="UserName" runat="server"
ToolTip="The Username that you will need to login later eg "john123""></asp:TextBox>
<asp:RequiredFieldValidator ID="rv1_1" runat="server"
ControlToValidate="UserName" ErrorMessage="User Name is required."
ForeColor="Red" ToolTip="User Name is required."
ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="rv1_2" runat="server"
ControlToValidate="UserName" ErrorMessage="Not a valid Username"
ForeColor="Red" ValidationExpression="^[a-z0-9_-]{3,15}$"
ValidationGroup="CreateUserWizard1">*</asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label>
</td>
<td>
<asp:TextBox ID="Password" runat="server" TextMode="Password"
ToolTip="The password for the selected username eg"123456""></asp:TextBox>
<asp:RequiredFieldValidator ID="rv2_1" runat="server"
ControlToValidate="Password" ErrorMessage="Password is required."
ForeColor="Red" ToolTip="Password is required."
ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="rv2_2" runat="server"
ControlToValidate="Password"
ErrorMessage="Invalid Password Please enter a valid password rg"pass12""
ForeColor="Red" ValidationExpression="^[A-Za-z0-9]+$"
ValidationGroup="CreateUserWizard1">*</asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="ConfirmPasswordLabel" runat="server"
AssociatedControlID="ConfirmPassword">Confirm Password:</asp:Label>
</td>
<td>
<asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password"
ToolTip="Must enter the same password as above to confirm password"></asp:TextBox>
<asp:RequiredFieldValidator ID="rv3_1" runat="server"
ControlToValidate="ConfirmPassword"
ErrorMessage="Confirm Password is required." ForeColor="Red"
ToolTip="Confirm Password is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="rv3_2" runat="server"
ControlToValidate="ConfirmPassword"
ErrorMessage="Invalid Password Please enter a valid password rg"pass12""
ForeColor="Red" ValidationExpression="^[A-Za-z0-9]+$"
ValidationGroup="CreateUserWizard1">*</asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">E-mail:</asp:Label>
</td>
<td>
<asp:TextBox ID="Email" runat="server"
ToolTip="The email on which we will use to contact you!"></asp:TextBox>
<asp:RequiredFieldValidator ID="rv4_1" runat="server" ControlToValidate="Email"
ErrorMessage="E-mail is required." ForeColor="Red"
ToolTip="E-mail is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="rv4_2" runat="server"
ControlToValidate="Email" ErrorMessage="Email invalid format" ForeColor="Red"
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
ValidationGroup="CreateUserWizard1">*</asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td align="right">
</td>
<td>
</td>
</tr>
<tr>
<td align="right">
</td>
<td>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:CompareValidator ID="PasswordCompare" runat="server"
ControlToCompare="Password" ControlToValidate="ConfirmPassword"
Display="Dynamic"
ErrorMessage="The Password and Confirmation Password must match."
ForeColor="Red" ValidationGroup="CreateUserWizard1"></asp:CompareValidator>
</td>
</tr>
<tr>
<td align="center" colspan="2" style="color:Red;">
<asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:CreateUserWizardStep>
<asp:CompleteWizardStep runat="server" />
</WizardSteps>
</asp:CreateUserWizard>
Aspx File
protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
if (CheckUsername() != true)
{
Roles.AddUserToRole(RegisterUser.UserName, "Pre-Member");
FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);
string continueUrl = RegisterUser.ContinueDestinationPageUrl;
if (String.IsNullOrEmpty(continueUrl))
{
continueUrl = "~/Account/InsertingUserDetails.aspx";
}
Response.Redirect(continueUrl);
}
else
{
RegisterUser.UserNameRequiredErrorMessage = "User already taken";
}
}
E E Cummings
05-Oct-2013Assuming your Create Use wizard looks like this
You can access the validators as follows: