예제 #1
0
        public static IEnumerable <IdentityResource> GetIdentityResources()
        {
            yield return(new IdentityResources.OpenId());

            yield return(new IdentityResources.Profile());

            yield return(new IdentityResource(
                             IdentityConfig.Scopes.WebApplication,
                             "DisplayName: WebApplication",
                             AccessClaims.GetAccessClaimTypes()));
        }
예제 #2
0
        private static async Task SeedWithAdminUserAsync(IServiceProvider provider)
        {
            var context = provider.GetService <ApplicationDbContext>();

            var roles = new[]
            {
                IdentityConfig.Role.PublicUser,
                IdentityConfig.Role.AdminUser
            };

            var adminRoles = new[]
            {
                IdentityConfig.Role.AdminUser
            };

            var claims = AccessClaims.GetAccessClaimsWithValue(AccessClaimValues.ReadWrite);

            await SaveRolesAsync(roles, context);

            var user = context.Users.FirstOrDefault(u => u.UserName == OwnerEmail);

            if (user == null)
            {
                user = new ApplicationUser
                {
                    UserName       = OwnerEmail,
                    Id             = Guid.NewGuid().ToString(),
                    Email          = OwnerEmail,
                    SecurityStamp  = Guid.NewGuid().ToString("D"),
                    EmailConfirmed = true
                };

                var passwordHasher = provider.GetService <IPasswordHasher <ApplicationUser> >();
                user.PasswordHash = passwordHasher.HashPassword(user, "Test123!");
                var userStore = new UserStore <ApplicationUser>(context);
                await userStore.CreateAsync(user);
            }

            await AssignClaimsAsync(provider, user.Id, claims);
            await AssignRolesAsync(provider, user.Id, adminRoles);

            await context.SaveChangesAsync();
        }