| using Microsoft.Extensions.DependencyInjection; | 
| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
| using System.Text; | 
| using System.Threading.Tasks; | 
| using WIDESEA_Core.Helper; | 
|   | 
| namespace WIDESEA_Core.Extensions | 
| { | 
|     /// <summary> | 
|     /// Cors 跨域 | 
|     /// </summary> | 
|     public static class CorsSetup | 
|     { | 
|         /// <summary> | 
|         /// 跨域 | 
|         /// </summary> | 
|         /// <param name="services"></param> | 
|         /// <exception cref="ArgumentNullException"></exception> | 
|         public static void AddCorsSetup(this IServiceCollection services) | 
|         { | 
|             if (services == null) throw new ArgumentNullException(nameof(services)); | 
|   | 
|             services.AddCors(c => | 
|             { | 
|                 if (!AppSettings.app(new string[] { "Cors", "EnableAllIPs" }).ObjToBool()) | 
|                 { | 
|                     c.AddPolicy(AppSettings.app(new string[] {"Cors", "PolicyName" }), | 
|   | 
|                         policy => | 
|                         { | 
|                             policy | 
|                             .WithOrigins(AppSettings.app(new string[] { "Cors", "IPs" }).Split(',')) | 
|                             .AllowAnyHeader()//Ensures that the policy allows any header. | 
|                             .AllowAnyMethod(); | 
|                         }); | 
|                 } | 
|                 else | 
|                 { | 
|                     //允许任意跨域请求 | 
|                     c.AddPolicy(AppSettings.app(new string[] { "Cors", "PolicyName" }), | 
|                         policy => | 
|                         { | 
|                             policy | 
|                             .SetIsOriginAllowed((host) => true) | 
|                             .AllowAnyMethod() | 
|                             .AllowAnyHeader() | 
|                             .AllowCredentials(); | 
|                         }); | 
|                 } | 
|   | 
|             }); | 
|         } | 
|     } | 
| } |