You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
using EntrustSettle.Common;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
namespace EntrustSettle.Extensions
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Cors 启动服务
|
|
|
|
|
/// </summary>
|
|
|
|
|
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();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|