Duplicate user in aspnet_Users table

Last post 07-20-2009 3:36 PM by bradgil. 5 replies.

Sort Posts:

  • Duplicate user in aspnet_Users table

    07-19-2009, 9:33 PM
    • Member
      3 point Member
    • bradgil
    • Member since 07-18-2008, 8:31 PM
    • Posts 4

    I Create a user with the CreateUser Wizard and all is OK - 1 record in aspnet_Users table, and 1 record in aspnet_Membership table with matching UserId.  Then I add user to roles:

    if (!Roles.IsUserInRole(username, rolename))

       Roles.AddUserToRole(username, rolename);

    I end up with 2 records with same UserName in aspnet_Users - different UserIds (old and new), the aspnet_Membership table is unchanged, and aspnet_UsersInRoles table has the new UserId associated with the role.  All is fine until I delete the user - I'm left with a record in aspnet_Users with the new UserId.

    Why is a duplicate UserName record with a new UserId created in the aspnet_Users table when I call AddUsersToRole?

    Can this be corrected so the aspnet_UsersInRoles table uses the original UserId, instead of creating a new UserId for a duplicate UserName, and there is no duplicate record by UserName in the aspnet_Users table?

    Thanks - Brad

     

    Filed under:
  • Re: Duplicate user in aspnet_Users table

    07-19-2009, 11:11 PM
    • All-Star
      16,976 point All-Star
    • guru_sarkar
    • Member since 08-30-2007, 8:00 PM
    • Posts 2,562

    that would be due to different applicationName attribut for your membership and role providers..

    adjust the roleManager section in your web.config like below...make sure to use same applicationName for both your membership and Role Providers

    <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
                <providers>


    <clear />

                   <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                   
                </providers>
            </roleManager>

  • Re: Duplicate user in aspnet_Users table

    07-19-2009, 11:51 PM
    • Contributor
      2,514 point Contributor
    • anup1252000
    • Member since 11-12-2008, 8:26 AM
    • india
    • Posts 506

    write these lines of code

    protected void CreateUserWizard1_CreatingUser(object sender, LoginCancelEventArgs e)
        {

    MembershipCreateStatus status;
            Membership.CreateUser(username, Password, email, question, answer, true, out status);
            switch (status)
            {
                case MembershipCreateStatus.DuplicateEmail:


    Response.Write("email already exist");

                   break;
                case MembershipCreateStatus.DuplicateProviderUserKey:
                    break;
                case MembershipCreateStatus.DuplicateUserName:
                    Response.Write("USER ALREADY EXIST");
                    break;
                case MembershipCreateStatus.InvalidAnswer:
                    break;
                case MembershipCreateStatus.InvalidEmail:
                    break;
                case MembershipCreateStatus.InvalidPassword:
                    break;
                case MembershipCreateStatus.InvalidProviderUserKey:
                    break;
                case MembershipCreateStatus.InvalidQuestion:
                    break;
                case MembershipCreateStatus.InvalidUserName:
                    break;
                case MembershipCreateStatus.ProviderError:
                    break;
                case MembershipCreateStatus.Success:
                    break;
                case MembershipCreateStatus.UserRejected:
                    break;
                default:
                    break;
            }

        }

    Remember to click “Mark as Answer” on the post, if it helps you. Because It helps others to find the solution.

    Anup Hosur
    HP
    http://anup-anuphosur.blogspot.com/


  • Re: Duplicate user in aspnet_Users table

    07-20-2009, 11:25 AM
    • Member
      3 point Member
    • bradgil
    • Member since 07-18-2008, 8:31 PM
    • Posts 4

    You're right guru.  I wanted to emilinate the email and security question for create user wizard, so I added the below membership script to my web config:

    <membership defaultProvider="MyMembership">
      <providers>
          <add
            name="MyMembership"
            type="System.Web.Security.SqlMembershipProvider"
            connectionStringName="LocalSqlServer"
            requiresQuestionAndAnswer="false"
            requiresUniqueEmail="false" />
      </providers>
    </membership>

    Adding your role Manager script did not help, but I did not realize my above web config change was the culprit until after reading your response.

    I also discovered users previously created before adding Membership script could no longer log on - sigh.

    Is there a way to remove email and security question from create user wizard without changing the membership application name?

    Thanks - Brad

  • Re: Duplicate user in aspnet_Users table

    07-20-2009, 12:28 PM
    Answer
    • All-Star
      16,976 point All-Star
    • guru_sarkar
    • Member since 08-30-2007, 8:00 PM
    • Posts 2,562

    Not really...without making changes to web.config...

    ---you can do other than recreating the users again....

    --- I am not sure if you want to set the applicationName in your membershipProvider as the one that you have right now in your DB membership_Applicaiton table.


  • Re: Duplicate user in aspnet_Users table

    07-20-2009, 3:36 PM
    • Member
      3 point Member
    • bradgil
    • Member since 07-18-2008, 8:31 PM
    • Posts 4

    Thanks guru,

    I marked as answered.

Page 1 of 1 (6 items)