using System; using System.Linq; using Autofac; using Infrastructure; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using OpenAuth.App; using OpenAuth.Repository; namespace OpenAuth.IdentityServer { public class Startup { public IHostEnvironment Environment { get; } public IConfiguration Configuration { get; } public Startup(IConfiguration configuration, IHostEnvironment environment) { Configuration = configuration; Environment = environment; } public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); var builder = services.AddIdentityServer() .AddDeveloperSigningCredential() .AddInMemoryApiScopes(Config.ApiScopes) .AddInMemoryClients(Config.GetClients()); //.AddInMemoryIdentityResources(Config.GetIdentityResources()) //.AddInMemoryApiResources(Config.GetApis()) //.AddProfileService(); services.ConfigureNonBreakingSameSiteCookies(); services.AddCors(); builder.AddDeveloperSigningCredential(); services.AddAuthentication(); //映射配置文件 services.Configure(Configuration.GetSection("AppSetting")); } public void ConfigureContainer(ContainerBuilder builder) { AutofacExt.InitAutofac(builder); } public void Configure(IApplicationBuilder app, IHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseCookiePolicy(); //todo:测试可以允许任意跨域,正式环境要加权限 app.UseCors(builder => builder.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader()); app.UseStaticFiles(); app.UseRouting(); app.UseIdentityServer(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); }); } } }