using Microsoft.Extensions.DependencyInjection; namespace DS.Module.Core.ServiceExtensions; /// /// 跨域服务 /// public static class CorsInstall { /// /// 将模块服务添加到依赖注入服务容器中 /// /// 依赖注入服务容器 /// public static IServiceCollection AddCorsInstall(this IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); //跨域第二种方法,声明策略,记得下边app中配置 //跨域请求 // string policyName = AppSetting.Configuration["Cors:PolicyName"]; // var corsUrl = AppSetting.Configuration["Cors:Url"]; string policyName = AppSetting.app(new string[] { "Cors", "PolicyName" }); var corsUrl = AppSetting.app(new string[] { "Cors", "Url" }); var exposedHeaders = AppSetting.app(new string[] { "Cors", "ExposedHeaders" }); services.AddCors(c => { c.AddPolicy(policyName, policy => { policy.WithOrigins(corsUrl .Split(",", StringSplitOptions.RemoveEmptyEntries).ToArray()) //policy.WithOrigins("http://localhost:5001")//支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 .AllowAnyHeader().AllowAnyMethod().AllowCredentials(); if (!string.IsNullOrEmpty(exposedHeaders)) { policy.WithExposedHeaders(exposedHeaders.Split(",", StringSplitOptions.RemoveEmptyEntries)); //允许cookie; } }); }); return services; } /// /// 将模块服务添加到依赖注入服务容器中 /// /// 依赖注入服务容器 /// public static IServiceCollection AddAnyCorsInstall(this IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); //跨域第二种方法,声明策略,记得下边app中配置 //跨域请求 string policyName = AppSetting.app(new string[] { "Cors", "PolicyName" }); // var corsUrl = AppSetting.Configuration["Cors:Url"]; services.AddCors(c => { c.AddPolicy(policyName, policy => { policy.AllowAnyOrigin() //policy.WithOrigins("http://localhost:5001")//支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 .AllowAnyHeader().AllowAnyMethod(); //允许cookie; }); }); return services; } }