using EntrustSettle.Common; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; namespace EntrustSettle.Extensions { /// /// Cors 启动服务 /// public static class CorsSetup { public static void AddCorsSetup(this IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); services.AddCors(c => { if (!AppSettings.app(new string[] { "Startup", "Cors", "EnableAllIPs" }).ObjToBool()) { c.AddPolicy(AppSettings.app(new string[] { "Startup", "Cors", "PolicyName" }), policy => { policy .WithOrigins(AppSettings.app(new string[] { "Startup", "Cors", "IPs" }).Split(',')) .AllowAnyHeader()//Ensures that the policy allows any header. .AllowAnyMethod(); }); } else { //允许任意跨域请求 c.AddPolicy(AppSettings.app(new string[] { "Startup", "Cors", "PolicyName" }), policy => { policy .SetIsOriginAllowed((host) => true) .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials(); }); } }); } } }