SetLockoutEnabled for additional user in seed method not finding UserId

I'm trying to seed my database with a primary admin user (which when done my own way works fine), but when I try to add the first BP user, then it's an error on the following line:

result = userManager.SetLockoutEnabled(bpc1.Id, false)

      

My question is, is it possible to add admin roles and not other roles?

with the error "UserId not Found", but if I check this in debug I see that bpc1 has an ID attached to it, my code looks like this:

public static void InitializeIdentityForEF(ApplicationDbContext db) {           
        //User Manager and Role Manager
        var userManager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
        var roleManager = HttpContext.Current.GetOwinContext().Get<ApplicationRoleManager>();
        //Admin User
        const string name = "Admin@123456";
        const string password = "Password!";
        //BP Customers
        const string bpc1_name = "bpc1";
        const string bpc1_password = "Welcome2!";
        const string bpc2_name = "bpc2";
        const string bpc2_password = "Welcome2!";
        const string bpc3_name = "bpc3";
        const string bpc3_password = "Welcome2!";
        //KP Customers
        const string kpc1_name = "kpc1";
        const string kpc1_password = "Welcome2!";
        const string kpc2_name = "kpc2";
        const string kpc2_password = "Welcome2!";
        const string kpc3_name = "kpc3";
        const string kpc3_password = "Welcome2!";
        //Roles
        const string roleName = "Admin";
        const string roleName2 = "BP";
        const string roleName3 = "KP";

        //Create Role Admin if it does not exist
        var role = roleManager.FindByName(roleName);
        if (role == null) {
            role = new IdentityRole(roleName);
            var roleresult = roleManager.Create(role);
        }

        //Create Role Billpay if it does not exist
        var role2 = roleManager.FindByName(roleName2);
        if (role2 == null) {
            role2 = new IdentityRole(roleName2);
            var roleresult2 = roleManager.Create(role2);
        }

        //Create Role Keypad if it does not exist
        var role3 = roleManager.FindByName(roleName3);
        if (role3 == null) {
            role3 = new IdentityRole(roleName3);
            var roleresult3 = roleManager.Create(role3);
        }

        //Create Admin user
        var user = userManager.FindByName(name);
        if (user == null) {
            user = new ApplicationUser { UserName = name, Email = name };
            var result = userManager.Create(user, password);
            result = userManager.SetLockoutEnabled(user.Id, false);
        }

        //Create Billpay Customer 1
        var bpc1 = userManager.FindByName(bpc1_name);
        if (bpc1 == null)
        {
            bpc1 = new ApplicationUser { UserName = bpc1_name, Email = bpc1_name };
            var result = userManager.Create(user, bpc1_password);
            result = userManager.SetLockoutEnabled(bpc1.Id, false);
        }

        //Create Billpay Customer 2
        var bpc2 = userManager.FindByName(bpc2_name);
        if (bpc2 == null)
        {
            bpc2 = new ApplicationUser { UserName = bpc2_name, Email = bpc2_name };
            var result = userManager.Create(bpc2, bpc2_password);
            result = userManager.SetLockoutEnabled(bpc2.Id, false);
        }

        //Create Billpay Customer 3
        var bpc3 = userManager.FindByName(bpc3_name);
        if (bpc3 == null)
        {
            bpc3 = new ApplicationUser { UserName = bpc3_name, Email = bpc3_name };
            var result = userManager.Create(bpc3, bpc3_password);
            result = userManager.SetLockoutEnabled(bpc3.Id, false);
        }

        //Create Keypad Customer 1
        var kpc1 = userManager.FindByName(kpc1_name);
        if (kpc1 == null)
        {
            kpc1 = new ApplicationUser { UserName = kpc1_name, Email = kpc1_name };
            var result = userManager.Create(kpc1, kpc1_password);
            result = userManager.SetLockoutEnabled(kpc1.Id, false);
        }

        //Create Keypad Customer 2
        var kpc2 = userManager.FindByName(kpc2_name);
        if (kpc2 == null)
        {
            kpc2 = new ApplicationUser { UserName = kpc2_name, Email = kpc2_name };
            var result = userManager.Create(kpc2, kpc2_password);
            result = userManager.SetLockoutEnabled(kpc2.Id, false);
        }

        //Create Keypad Customer 3
        var kpc3 = userManager.FindByName(kpc3_name);
        if (kpc3 == null)
        {
            kpc3 = new ApplicationUser { UserName = kpc3_name, Email = kpc3_name };
            var result = userManager.Create(kpc3, kpc3_password);
            result = userManager.SetLockoutEnabled(kpc3.Id, false);
        }

        // Add user admin to Role Admin if not already added
        var rolesForUser = userManager.GetRoles(user.Id);
        if (!rolesForUser.Contains(role.Name)) {
            var result = userManager.AddToRole(user.Id, role.Name);
        }

        // Add Billpay Customers to Role Billpay if not already added
        var rolesForBillpayCustomer1 = userManager.GetRoles(bpc1.Id);
        var rolesForBillpayCustomer2 = userManager.GetRoles(bpc2.Id);
        var rolesForBillpayCustomer3 = userManager.GetRoles(bpc3.Id);
        if (!rolesForBillpayCustomer1.Contains(role2.Name))
        {
            var result = userManager.AddToRole(bpc1.Id, role2.Name);
        }
        if (!rolesForBillpayCustomer2.Contains(role2.Name))
        {
            var result = userManager.AddToRole(bpc2.Id, role2.Name);
        }
        if (!rolesForBillpayCustomer3.Contains(role2.Name))
        {
            var result = userManager.AddToRole(bpc1.Id, role2.Name);
        }

        // Add Keypad Customers to Role Keypad if not already added
        var rolesForKeypadCustomer1 = userManager.GetRoles(kpc1.Id);
        var rolesForKeypadCustomer2 = userManager.GetRoles(kpc2.Id);
        var rolesForKeypadCustomer3 = userManager.GetRoles(kpc3.Id);
        if (!rolesForKeypadCustomer1.Contains(role2.Name))
        {
            var result = userManager.AddToRole(kpc1.Id, role3.Name);
        }
        if (!rolesForKeypadCustomer2.Contains(role2.Name))
        {
            var result = userManager.AddToRole(kpc2.Id, role3.Name);
        }
        if (!rolesForKeypadCustomer3.Contains(role2.Name))
        {
            var result = userManager.AddToRole(kpc3.Id, role3.Name);
        }
    }
}

      

+3


source to share





All Articles