using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; namespace QYZH.InteractiveMagazine.Infrastructure.Middleware { /// /// 跨域扩展 /// public static class CorsExtension { /// /// 跨域配置 /// /// /// public static void AddCorsRegister(this WebApplicationBuilder builder) { bool isCorsAll = builder.Configuration["corsUrls"] == "*"; builder.Services.AddCors(options => { options.AddPolicy("defaultCors", policy => { if (isCorsAll) { policy.SetIsOriginAllowed(origin => true); } else { var corsUrls = builder.Configuration.GetSection("corsUrls").Get(); policy.WithOrigins(corsUrls ?? Array.Empty()); } policy.AllowAnyHeader() .AllowAnyMethod() .AllowCredentials() .WithExposedHeaders("X-New-Token"); }); }); } } }