/// <summary> /// 添加授权验证组件 /// </summary> /// <param name=""></param> /// <returns></returns> public static IServiceCollection AddCustomizedAuthorization(this IServiceCollection services, IWebHostEnvironment webHostEnvironment) { var builder = services.AddIdentityServer() .AddInMemoryIdentityResources(IdentityServer4Config.GetIdentityResources()) .AddInMemoryApiResources(IdentityServer4Config.GetApis()) .AddInMemoryClients(IdentityServer4Config.GetClients()); if (webHostEnvironment.IsDevelopment()) { builder.AddDeveloperSigningCredential(); } else { throw new Exception("need to configure key material"); } return(services); }
private static void EnsureSeedData(ConfigurationDbContext context) { if (!context.Clients.Any()) { Console.WriteLine("Clients being populated"); foreach (var client in IdentityServer4Config.GetClients().ToList()) { context.Clients.Add(client.ToEntity()); } context.SaveChanges(); } else { Console.WriteLine("Clients already populated"); } if (!context.IdentityResources.Any()) { Console.WriteLine("IdentityResources being populated"); foreach (var resource in IdentityServer4Config.GetIdentityResources().ToList()) { context.IdentityResources.Add(resource.ToEntity()); } context.SaveChanges(); } else { Console.WriteLine("IdentityResources already populated"); } if (!context.ApiResources.Any()) { Console.WriteLine("ApiResources being populated"); foreach (var resource in IdentityServer4Config.GetApiResources().ToList()) { context.ApiResources.Add(resource.ToEntity()); } context.SaveChanges(); } else { Console.WriteLine("ApiResources already populated"); } }
private void InitializeDatabase(IApplicationBuilder app) { using (var serviceScope = app.ApplicationServices.GetService <IServiceScopeFactory>().CreateScope()) { serviceScope.ServiceProvider.GetRequiredService <PersistedGrantDbContext>().Database.Migrate(); var context = serviceScope.ServiceProvider.GetRequiredService <ConfigurationDbContext>(); context.Database.Migrate(); if (!context.Clients.Any()) { foreach (var client in IdentityServer4Config.GetClients()) { context.Clients.Add(client.ToEntity()); } context.SaveChanges(); } if (!context.IdentityResources.Any()) { foreach (var resource in IdentityServer4Config.GetIdentityResources()) { context.IdentityResources.Add(resource.ToEntity()); } context.SaveChanges(); } if (!context.ApiResources.Any()) { foreach (var resource in IdentityServer4Config.GetApis()) { context.ApiResources.Add(resource.ToEntity()); } context.SaveChanges(); } } }