using DopInterfacePlatform.Interface; using DopInterfacePlatform.Service; using Microsoft.EntityFrameworkCore; using Swashbuckle.AspNetCore.SwaggerGen; using WebApiTest; namespace DopInterfacePlatform { public class Program { public static void Main(string[] args) { var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); builder.Services.AddScoped(container => { var loggerFactory = container.GetRequiredService(); var logger = loggerFactory.CreateLogger(); return new ClientIpCheckActionFilter(builder.Configuration["IpWhiteList"], logger); }); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.AddScoped(); JwtOptions jwtOpt = builder.Configuration.GetSection("JWT").Get(); builder.Services.AddJWTAuthentication(jwtOpt); builder.Services.Configure(c => { c.AddAuthenticationHeader(); }); builder.Services.AddDbContext(opt => opt.UseSqlServer(builder.Configuration["ConnectionStrings:todoContext"])); builder.Services.AddMvcCore(options => { options.Filters.Add(); }).AddApiExplorer(); var app = builder.Build(); // Configure the HTTP request pipeline. app.UseSwagger(); app.UseSwaggerUI(); app.UseHttpsRedirection(); app.UseAuthentication();//注意,一定得先启动这个 app.UseAuthorization(); app.UseMiddleware(builder.Configuration["IpWhiteList"]); app.MapControllers(); app.Run(); } } }