예제 #1
0
        public async static Task SetupAdminUserAsync(IServiceProvider serviceProvider, IConfiguration config)
        {
            var userManager = serviceProvider.GetService <UserManager <FlashCardUser> >();
            var roleManager = serviceProvider.GetService <RoleManager <IdentityRole> >();

            var adminUser = await userManager.FindByNameAsync("Admin");

            if (adminUser == null)
            {
                adminUser = new FlashCardUser()
                {
                    UserName = config.GetValue <string>("DefaultAdmin:UserName"),
                    Email    = config.GetValue <string>("DefaultAdmin:Email")
                };
                var hashedPwd = config.GetValue <string>("DefaultAdmin:Password");
                var idResult  = await userManager.CreateAsync(adminUser, hashedPwd);

                if (idResult.Succeeded)
                {
                    await CreateAndAddAdminRole(userManager, roleManager, adminUser);
                }
            }
            else
            {
                await CreateAndAddAdminRole(userManager, roleManager, adminUser);
            }
        }
예제 #2
0
        private static async Task CreateAndAddAdminRole(UserManager <FlashCardUser> userManager, RoleManager <IdentityRole> roleManager, FlashCardUser adminUser)
        {
            //create admin role if does not exist
            var adminRole = await roleManager.FindByNameAsync("Admin");

            if (adminRole is null)
            {
                var roleResult = await roleManager.CreateAsync(new IdentityRole { Name = "Admin" });

                if (roleResult.Succeeded)
                {
                    await userManager.AddToRoleAsync(adminUser, "Admin");
                }
            }
            else
            {
                var userHasAdminRole = await userManager.IsInRoleAsync(adminUser, "Admin");

                if (userHasAdminRole == false)
                {
                    await userManager.AddToRoleAsync(adminUser, "Admin");
                }
            }
        }