using Microsoft.Extensions.DependencyInjection;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEAWCS_Core.Helper;
|
|
namespace WIDESEAWCS_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();
|
});
|
}
|
|
});
|
}
|
}
|
}
|