x First time here? Check out the FAQ

Come work for Umbraco - The Umbraco HQ are hiring Project managers, .NET developers and DevOps people!

  • Avatar1442posts1720karma

    membershipprovider and requiresUniqueEmail="false"

    Peter Dijksterhuis started this topic June 1, 2010 @ 11:33, Go directly to the topic solution

    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


  • Nik Wahlberg posted this reply June 1, 2010 @ 11:38

    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


  • Avatar612posts1122karma
    Comment with ID: 34977
    Nik Wahlberg posted this reply June 1, 2010 @ 11:42

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


  • Avatar1442posts1720karma
    Comment with ID: 34979
    Peter Dijksterhuis posted this reply June 1, 2010 @ 11:52

    Works like a charm! Thanks!

    Peter


  • Avatar612posts1122karma
    Comment with ID: 34982
    Nik Wahlberg posted this reply June 2, 2010 @ 12:35

    Glad it helped you out! 

    -- Nik


Please login or Sign up To post replies