示例#1
0
        protected override void Seed(EFDbContext context)
        {
            base.Seed(context);
            const string fullName  = "系统管理员";
            var          roleNames = new string[] { Admins, Users, CKUsers, CLUsers, STUsers, Managers };

            using (var roleManager = ApplicationRoleManager.CreateForEF(context))
            {
                if ((from item in roleNames
                     let role = roleManager.FindByName(item)
                                where role == null
                                select new IdentityRole(item)
                                into role
                                select roleManager.Create(role)).Any(roleresult => !roleresult.Succeeded))
                {
                    throw new Exception("初始化系统失败!");
                }
            }

            using (var userManager = ApplicationUserManager.CreateForEF(context))
            {
                var user = userManager.FindByName(SaUserName);
                if (user == null)
                {
                    user = new ApplicationUser
                    {
                        Id               = SaUserId,
                        UserName         = SaUserName,
                        EmailConfirmed   = false,
                        FullName         = fullName,
                        TwoFactorEnabled = true,
                    };
                    userManager.Create(user, SaPassword);
                    userManager.SetLockoutEnabled(user.Id, true);
                }

                var rolesForUser = userManager.GetRoles(user.Id);
                if (!rolesForUser.Contains(Admins))
                {
                    userManager.AddToRole(user.Id, Admins);
                }
            }
        }