예제 #1
0
        public static async Task SeedUser()
        {
            var user = new ApplicationUser
            {
                UserName           = "******",
                NormalizedUserName = "******",
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                EmailConfirmed  = true,
                LockoutEnabled  = false,
                SecurityStamp   = Guid.NewGuid().ToString()
            };

            var roleStore = new CustomRoleStore(_context);

            IList <ApplicationRole> roles = new List <ApplicationRole>()
            {
                new ApplicationRole()
                {
                    Name = MembershipConstant.SuperAdmin, NormalizedName = MembershipConstant.SuperAdmin.ToUpper()
                },
                new ApplicationRole()
                {
                    Name = MembershipConstant.Admin, NormalizedName = MembershipConstant.Admin.ToUpper()
                },
                new ApplicationRole()
                {
                    Name = MembershipConstant.Operator, NormalizedName = MembershipConstant.Operator.ToUpper()
                },
                new ApplicationRole()
                {
                    Name = MembershipConstant.Staff, NormalizedName = MembershipConstant.Staff.ToUpper()
                },
                new ApplicationRole()
                {
                    Name = MembershipConstant.Owner, NormalizedName = MembershipConstant.Owner.ToUpper()
                },
                new ApplicationRole()
                {
                    Name = MembershipConstant.Member, NormalizedName = MembershipConstant.Member.ToUpper()
                }
            };

            foreach (var role in roles)
            {
                //var existRole = await roleStore.FindByNameAsync(role.NormalizedName);
                if (!_context.Roles.Any(x => x.Name == role.Name))
                {
                    await roleStore.CreateAsync(new ApplicationRole { Name = role.Name, NormalizedName = role.NormalizedName });
                }
            }

            if (!_context.Users.Any(u => u.UserName == user.UserName))
            {
                var password = new PasswordHasher <ApplicationUser>();
                var hashed   = password.HashPassword(user, "test123!");
                user.PasswordHash = hashed;
                var userStore = new CustomUserStore(_context);
                await userStore.CreateAsync(user);

                await userStore.AddToRoleAsync(user, MembershipConstant.SuperAdmin);
            }
        }