Search In
Learn from 350 other Umbracians at the annual Umbraco Conference - CodeGarden '13. More than twenty high quality sessions, open spaces, hackathons and social events you'll remember. Not to be missed! Less than 25 tickets left - get yours now!
Hi All,
I'm working with the default asp.net membershipprovider. Now, by default, that requires that all members registere have all unique email-addresses.
However, I'd like to override that because I do not need emails to be unique.
Is there any way I can tell the default controls to skip testing for emailaddress or is there any example code out there that allows the creation of users without checking for existing emails?
Thanks in advance,
Peter
Hi Peter, here is what I have done in the past that has seemed to work fine. For member registration, hook into the following event:
protected void CreateUserWizard1_CreatingUser(object sender, EventArgs e) { Literal errorMsg = (Literal)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("ErrorMsg"); TextBox email = (TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("UserName"); Member m = Member.GetMemberFromEmail(email.Text); if (m!=null) { errorMsg.Text = "The email you specified is already taken. Please choose another email."; return; } }
And, OR, you could alternatively create your own provider and override the method that way. The above keeps your error handling to the code behind without overriding the default Umbraco Membership provider.
HTH,Nik
So, if you were to entend the UmbracoMembershipProvider you'd have something like this:
public class CustomMembershipProvider : umbraco.providers.members.UmbracoMembershipProvider { ... public override string GetUserNameByEmail(string email) { return base.GetUserNameByEmail(email); } ... }
That should give you some ways to go about it...
Works like a charm! Thanks!
Glad it helped you out!
-- Nik