One of the properties of the CreateUserWizard is Duplicate User Name = Please enter a different user name. When I enter a duplicate name in the UserName text box the Wizard will not move to the next form, but it does not display the error, so you dont know
what is going on. Where do you put the text or property to activate that message?
protected void createmembership(){MembershipCreateStatus status;
try
{
MembershipUser newUser = Membership.CreateUser(txtUserName.Text, txtPassword.Text,
txtEmail.Text, "question",
"answer", false, out status);
if (newUser == null)
{
lblErrorMessage.Text = GetErrorMessage(status);
}
else
{
//Membership created successfully...
//You can write your code to save user in another table here...
}
}
catch(Exception Ex)
{
throw Ex;
}}
//Function to get exact error message
public string GetErrorMessage(MembershipCreateStatus status)
{
switch (status)
{
case MembershipCreateStatus.DuplicateUserName:
return "Username already exists. Please enter a different user name.";
case MembershipCreateStatus.DuplicateEmail:
return "A username for that e-mail address already exists. Please enter a different e-mail address.";
case MembershipCreateStatus.InvalidPassword:
return "Please enter a valid password value.Minimum 6 characters required.";
case MembershipCreateStatus.InvalidEmail:
return "The e-mail address provided is invalid. Please check the value and try again.";
case MembershipCreateStatus.InvalidUserName:
return "The user name provided is invalid. Please check the value and try again.";
case MembershipCreateStatus.ProviderError:
return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
case MembershipCreateStatus.UserRejected:
return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
default:
return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
}
}
I dont need to use the question/answer pieces, but in that case you do not get a 'status' parameter (out). CAn this code be used with the wizard? If so, there is no Button1_Click - where do you validate these items before going to the additiona info?
public partial class umw_Account_register : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (CreateUserWizard1.ActiveStepIndex > 0)
CreateUserWizard1.ActiveStepIndex = 0;
}
}
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
MembershipCreateStatus status;
}
protected void ContinueButton_Click(object sender, EventArgs e)
{
string userid;
MembershipUser strThisUser = Membership.GetUser();
string strUserName;
strUserName = strThisUser.UserName.ToString();
userid = Membership.GetUser(strUserName).ProviderUserKey.ToString();
DropDownList ddlt = (DropDownList)CreateUserWizard1.FindControl("ddlTitle");
int title = Convert.ToInt32(ddlt.SelectedValue);
string fn = fnameTxt.Text;
string mn = mnameTxt.Text;
string ln = lnameTxt.Text;
int sfxid = Convert.ToInt32(suffixDdl.SelectedValue);
string gn = sexDdl.SelectedValue;
string bd = dobTxt.Text;
string address1 = add1Txt.Text;
string address2 = add2Txt.Text;
string city = cityTxt.Text;
string zip = zipTxt.Text;
int st = Convert.ToInt32(ddlstate.SelectedValue);
int iso = Convert.ToInt32(ddlcountry.SelectedValue);
umMembership um = new umMembership();
um.insertMember(title, fn, mn, ln, sfxid, gn, bd, address1, address2, city, zip, st, iso, userid);
int memberid = um.getriderid(userid);
FormsAuthentication.SetAuthCookie(CreateUserWizard1.UserName, true);
Session["RID"] = memberid.ToString();
Response.Redirect("~/umw/main/Default.aspx");
}
protected void CreateUserWizard1_CreatingUser(object sender, LoginCancelEventArgs e)
{
MembershipCreateStatus status;
Label lb1 = (Label)CreateUserWizard1.FindControl("Label1");
try
{
MembershipUser newuser = Membership.CreateUser(CreateUserWizard1.UserName, CreateUserWizard1.Password, CreateUserWizard1.Email);
}
catch (MembershipCreateUserException ex)
{
switch (ex.StatusCode)
{
case MembershipCreateStatus.DuplicateUserName:
Label1.Text = "Username already exists. Please enter a different user name.";
break;
case MembershipCreateStatus.DuplicateEmail:
Label1.Text = "A username for that e-mail address already exists. Please enter a different e-mail address.";
break;
case MembershipCreateStatus.InvalidPassword:
Label1.Text = "The password provided is invalid. Please enter a valid password value.";
break;
case MembershipCreateStatus.InvalidEmail:
Label1.Text = "The e-mail address provided is invalid. Please check the value and try again.";
break;
case MembershipCreateStatus.ProviderError:
Label1.Text = "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
break;
case MembershipCreateStatus.UserRejected:
Label1.Text = "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
break;
default:
break;
}
}
}
}
dieseldave
Member
384 Points
434 Posts
Duplicate User Name
Jan 24, 2013 01:47 AM|LINK
One of the properties of the CreateUserWizard is Duplicate User Name = Please enter a different user name. When I enter a duplicate name in the UserName text box the Wizard will not move to the next form, but it does not display the error, so you dont know what is going on. Where do you put the text or property to activate that message?
Sujeet Saste
Contributor
2998 Points
572 Posts
Re: Duplicate User Name
Jan 24, 2013 07:32 AM|LINK
I handle it as follows :
protected void createmembership(){MembershipCreateStatus status; try { MembershipUser newUser = Membership.CreateUser(txtUserName.Text, txtPassword.Text, txtEmail.Text, "question", "answer", false, out status); if (newUser == null) { lblErrorMessage.Text = GetErrorMessage(status); } else { //Membership created successfully... //You can write your code to save user in another table here... } } catch(Exception Ex) { throw Ex; }} //Function to get exact error message public string GetErrorMessage(MembershipCreateStatus status) { switch (status) { case MembershipCreateStatus.DuplicateUserName: return "Username already exists. Please enter a different user name."; case MembershipCreateStatus.DuplicateEmail: return "A username for that e-mail address already exists. Please enter a different e-mail address."; case MembershipCreateStatus.InvalidPassword: return "Please enter a valid password value.Minimum 6 characters required."; case MembershipCreateStatus.InvalidEmail: return "The e-mail address provided is invalid. Please check the value and try again."; case MembershipCreateStatus.InvalidUserName: return "The user name provided is invalid. Please check the value and try again."; case MembershipCreateStatus.ProviderError: return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator."; case MembershipCreateStatus.UserRejected: return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator."; default: return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator."; } }If any query remains, feel free to ask.
Do FEAR (Face Everything And Rise)
Please mark as Answer if my post helps you..!
My Blog
dieseldave
Member
384 Points
434 Posts
Re: Duplicate User Name
Jan 24, 2013 12:55 PM|LINK
I dont need to use the question/answer pieces, but in that case you do not get a 'status' parameter (out). CAn this code be used with the wizard? If so, there is no Button1_Click - where do you validate these items before going to the additiona info?
public partial class umw_Account_register : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (CreateUserWizard1.ActiveStepIndex > 0) CreateUserWizard1.ActiveStepIndex = 0; } } protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e) { MembershipCreateStatus status; } protected void ContinueButton_Click(object sender, EventArgs e) { string userid; MembershipUser strThisUser = Membership.GetUser(); string strUserName; strUserName = strThisUser.UserName.ToString(); userid = Membership.GetUser(strUserName).ProviderUserKey.ToString(); DropDownList ddlt = (DropDownList)CreateUserWizard1.FindControl("ddlTitle"); int title = Convert.ToInt32(ddlt.SelectedValue); string fn = fnameTxt.Text; string mn = mnameTxt.Text; string ln = lnameTxt.Text; int sfxid = Convert.ToInt32(suffixDdl.SelectedValue); string gn = sexDdl.SelectedValue; string bd = dobTxt.Text; string address1 = add1Txt.Text; string address2 = add2Txt.Text; string city = cityTxt.Text; string zip = zipTxt.Text; int st = Convert.ToInt32(ddlstate.SelectedValue); int iso = Convert.ToInt32(ddlcountry.SelectedValue); umMembership um = new umMembership(); um.insertMember(title, fn, mn, ln, sfxid, gn, bd, address1, address2, city, zip, st, iso, userid); int memberid = um.getriderid(userid); FormsAuthentication.SetAuthCookie(CreateUserWizard1.UserName, true); Session["RID"] = memberid.ToString(); Response.Redirect("~/umw/main/Default.aspx"); } protected void CreateUserWizard1_CreatingUser(object sender, LoginCancelEventArgs e) { MembershipCreateStatus status; Label lb1 = (Label)CreateUserWizard1.FindControl("Label1"); try { MembershipUser newuser = Membership.CreateUser(CreateUserWizard1.UserName, CreateUserWizard1.Password, CreateUserWizard1.Email); } catch (MembershipCreateUserException ex) { switch (ex.StatusCode) { case MembershipCreateStatus.DuplicateUserName: Label1.Text = "Username already exists. Please enter a different user name."; break; case MembershipCreateStatus.DuplicateEmail: Label1.Text = "A username for that e-mail address already exists. Please enter a different e-mail address."; break; case MembershipCreateStatus.InvalidPassword: Label1.Text = "The password provided is invalid. Please enter a valid password value."; break; case MembershipCreateStatus.InvalidEmail: Label1.Text = "The e-mail address provided is invalid. Please check the value and try again."; break; case MembershipCreateStatus.ProviderError: Label1.Text = "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator."; break; case MembershipCreateStatus.UserRejected: Label1.Text = "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator."; break; default: break; } } } }<asp:Panel ID="Panel1" runat="server" style="width:620px; padding:15px 15px 15px 15px; min-height:600px; border:solid 1px firebrick; border-radius:8px 8px; background-color:ghostwhite;"> <div align="center"> <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></ajaxToolkit:ToolkitScriptManager> <asp:CreateUserWizard ID="CreateUserWizard1" runat="server" OnCreatedUser="CreateUserWizard1_CreatedUser" style="margin-top: 0px" OnCreatingUser="CreateUserWizard1_CreatingUser" > <WizardSteps> <asp:CreateUserWizardStep ID="CreateUserWizardStep1" 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"></asp:TextBox> <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" ErrorMessage="User Name is required." ToolTip="User Name is required." ValidationGroup="CreateUserWizard1"> <asp:Image ID="ImageReq1" runat="server" ImageUrl="~/umw/images/icons/asterisk_orange.png" /></asp:RequiredFieldValidator> </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"></asp:TextBox> <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" ErrorMessage="Password is required." ToolTip="Password is required." ValidationGroup="CreateUserWizard1"><asp:Image ID="Image1" runat="server" ImageUrl="~/umw/images/icons/asterisk_orange.png" /></asp:RequiredFieldValidator> </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"></asp:TextBox> <asp:RequiredFieldValidator ID="ConfirmPasswordRequired" runat="server" ControlToValidate="ConfirmPassword" ErrorMessage="Confirm Password is required." ToolTip="Confirm Password is required." ValidationGroup="CreateUserWizard1"><asp:Image ID="Image2" runat="server" ImageUrl="~/umw/images/icons/asterisk_orange.png" /></asp:RequiredFieldValidator> </td> </tr> <tr> <td align="right" class="auto-style1"> <asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">E-mail:</asp:Label> </td> <td class="auto-style1"> <asp:TextBox ID="Email" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="EmailRequired" runat="server" ControlToValidate="Email" ErrorMessage="E-mail is required." ToolTip="E-mail is required." ValidationGroup="CreateUserWizard1"><asp:Image ID="Image3" runat="server" ImageUrl="~/umw/images/icons/asterisk_orange.png" /></asp:RequiredFieldValidator> </td> </tr> <tr> <td align="right" colspan="2" style="text-align: left"> </td> </tr> <tr> <td align="center" colspan="2" style=" font-family:Verdana; font-size:x-small; color:red;"> <asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword" Display="Dynamic" ErrorMessage="The Password and Confirmation Password must match." ValidationGroup="CreateUserWizard1"></asp:CompareValidator> </td> </tr> <tr> <td align="center" colspan="2" style="color: Red;"> <asp:ValidationSummary ID="ValidationSummary1" runat="server" ValidationGroup="CreateUserWizard1" Font-Size="X-Small" /> <%-- <asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal>--%> </td> </tr> </table> </ContentTemplate> </asp:CreateUserWizardStep> <asp:WizardStep ID="WizardStep1" runat ="server" Title="Additional Information" StepType="Start" > <table class="frmtable"> <tr> <td colspan="3" style="font-size:1.2em; font-weight:600; color:darkslateblue; text-align:center; ">CONTACT INFORMATION<hr /> <br /></td> </tr> <tr> <td class="frmtdleft">title:</td> <td class="frmtdright"> <asp:DropDownList ID="ddlTitle" runat="server" ToolTip="Not a Required Item" CssClass="select" Height="27px" Width="100px" DataSourceID="SqlTitle" DataTextField="title" DataValueField="titleid" /> <asp:SqlDataSource ID="SqlTitle" runat="server" ConnectionString="<%$ ConnectionStrings:umwConn %>" SelectCommand="titlefetch" SelectCommandType="StoredProcedure"/> </td> </tr> <tr> <td class="frmtdleft">first name:</td> <td class="frmtdright"> <asp:TextBox ID="fnameTxt" runat="server" CssClass="txtFormlong" /> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="fnameTxt" ErrorMessage="<img src="../Images/Icons/star_1.png" >" /> </td> </tr> <tr> <td class="frmtdleft">middle name/initial:</td> <td class="frmtdright"> <asp:TextBox ID="mnameTxt" runat="server" CssClass="txtFormlong" /> </td><td></td> </tr> <tr> <td class="frmtdleft">last name:</td> <td class="frmtdright"> <asp:TextBox ID="lnameTxt" runat="server" CssClass="txtFormlong"/> <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="lnameTxt" ErrorMessage="<img src="../Images/Icons/star_1.png" >" /> </td><td></td> </tr> <tr> <td class="frmtdleft">suffix:</td> <td class="frmtdright"> <asp:DropDownList ID="suffixDdl" runat="server" ToolTip="Not Required NA = None" CssClass="select" Height="27px" Width="100px" DataSourceID="sqlSfx" DataTextField="suffix" DataValueField="suffixid" AppendDataBoundItems="True" > </asp:DropDownList> <asp:SqlDataSource ID="sqlSfx" runat="server" ConnectionString="<%$ ConnectionStrings:umwConn %>" SelectCommand="suffixfetch" SelectCommandType="StoredProcedure"></asp:SqlDataSource> </td><td></td> </tr> <tr> <td class="frmtdleft">gender:</td> <td class="frmtdright"> <asp:DropDownList ID="sexDdl" runat="server" ToolTip="Select your Gender" CssClass="select" Height="27px" Width="100px" > <asp:ListItem>Male</asp:ListItem> <asp:ListItem>Female</asp:ListItem> </asp:DropDownList> </td><td></td> </tr> <tr> <td class="frmtdleft">birthdate:</td> <td class="frmtdright"> <asp:TextBox ID="dobTxt" runat="server" CssClass="frmtxt200"></asp:TextBox> <ajaxToolkit:CalendarExtender ID="dobTxt_CalendarExtender" runat="server" Enabled="True" TargetControlID="dobTxt"> </ajaxToolkit:CalendarExtender> <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="dobTxt" ErrorMessage="<img src="../Images/Icons/star_1.png" >" /> </td> <td width="100"> </td> </tr> <tr> <td colspan="2" align="center">--------------LOCATION--------------</td> </tr> <tr> <td class="frmtdleft">address 1:</td> <td class="frmtdright"> <asp:TextBox ID="add1Txt" runat="server" CssClass="frmtxt200"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="add1Txt" ErrorMessage="<img src="../Images/Icons/star_1.png" >"></asp:RequiredFieldValidator> <ajaxToolkit:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender8" WatermarkCssClass="" runat="server" Enabled="True" TargetControlID="add1Txt" WatermarkText="Address 1"> </ajaxToolkit:TextBoxWatermarkExtender> </td> </tr> <tr> <td class="frmtdleft">address 2:</td> <td class="frmtdright"> <asp:TextBox ID="add2Txt" runat="server" CssClass="frmtxt200"></asp:TextBox> <ajaxToolkit:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender9" WatermarkCssClass="" runat="server" Enabled="True" TargetControlID="add2Txt" WatermarkText="Address 2"> </ajaxToolkit:TextBoxWatermarkExtender> </td> <tr> <td class="frmtdleft">city:</td> <td class="frmtdright"> <asp:TextBox ID="cityTxt" runat="server" CssClass="frmtxt200"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="cityTxt" ErrorMessage="<img src="../Images/Icons/star_1.png" >" /> <ajaxToolkit:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender10" runat="server" Enabled="True" TargetControlID="cityTxt" WatermarkText="City"> </ajaxToolkit:TextBoxWatermarkExtender> </td> </tr> <tr> <td class="frmtdleft">state:<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:umwConn %>" SelectCommand="statelist" SelectCommandType="StoredProcedure"></asp:SqlDataSource> </td> <td class="frmtdright"> <asp:DropDownList ID="ddlstate" runat="server" CssClass="frmddl" DataTextField="statename" DataValueField="stateid" AppendDataBoundItems="True" Height="27px" Width="100px" DataSourceID="SqlDataSource1"> </asp:DropDownList> </td> </tr> <tr> <td class="frmtdleft">postal code:</td> <td class="frmtdright"> <asp:TextBox ID="zipTxt" runat="server" CssClass="frmtxt100"></asp:TextBox> <ajaxToolkit:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender11" runat="server" Enabled="True" TargetControlID="zipTxt" WatermarkText="Postal Code"> </ajaxToolkit:TextBoxWatermarkExtender> </td> </tr> <tr> <td class="frmtdleft">country:</td> <td class="frmtdright"> <asp:DropDownList ID="ddlcountry" runat="server" DataSourceID="SqlDataSource2" DataTextField="country" DataValueField="iso" > </asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:umwConn %>" SelectCommand="countries" SelectCommandType="StoredProcedure" /> </td> </tr> </table> </asp:WizardStep> <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server" > <ContentTemplate> <table> <tr> <td align="center" colspan="2">Complete</td> </tr> <tr> <td>Your account has been successfully created.</td> </tr> <tr> <td align="right" colspan="2"> <asp:Button ID="ContinueButton" runat="server" CausesValidation="False" CommandName="Continue" OnClick="ContinueButton_Click" Text="Continue" ValidationGroup="CreateUserWizard1" /> </td> </tr> </table> </ContentTemplate> </asp:CompleteWizardStep> </WizardSteps> <StepNavigationTemplate> <asp:Button ID="StepPreviousButton" runat="server" CausesValidation="False" CommandName="MovePrevious" Text="Previous" /> <asp:Button ID="StepNextButton" runat="server" CommandName="MoveNext" Text="Next" /> </StepNavigationTemplate> </asp:CreateUserWizard> <asp:Label ID="Label1" runat="server" /> <br /> Use Back Button to Cancel<br /> </div></asp:Panel></div> </div> </form> </body> </html>Pengzhen Son...
Star
8276 Points
848 Posts
Microsoft
Re: Duplicate User Name
Jan 25, 2013 01:55 AM|LINK
Hi,
I think you can't find the label control with the above code. You can try removing the code and directly using the code like this
Hope it can help you.
Feedback to us
Develop and promote your apps in Windows Store