我正在将一个.Net 4.5.2项目更新为.Net Core Web API。目前,根据appSetting的值 CorsAllowAll
,Cors设置如下:
if ((ConfigurationManager.AppSettings["CorsAllowAll"] ?? "false") == "true")
{
appBuilder.UseCors(CorsOptions.AllowAll);
}
else
{
ConfigureCors(appBuilder);
}
private void ConfigureCors(IAppBuilder appBuilder)
{
appBuilder.UseCors(new CorsOptions
{
PolicyProvider = new CorsPolicyProvider
{
PolicyResolver = context =>
{
var policy = new CorsPolicy();
policy.Headers.Add("Content-Type");
policy.Headers.Add("Accept");
policy.Headers.Add("Auth-Token");
policy.Methods.Add("GET");
policy.Methods.Add("POST");
policy.Methods.Add("PUT");
policy.Methods.Add("DELETE");
policy.SupportsCredentials = true;
policy.PreflightMaxAge = 1728000;
policy.AllowAnyOrigin = true;
return Task.FromResult(policy);
}
}
});
}
如何在 .net core 中实现相同的功能?不幸的是,我不知道每个环境的URL。但我知道对于本地、DEV和QA环境,appSetting CorsAllowAll
是 true。但是对于UAT和PROD环境,它将是false。
更新 我的 appSettings.json 如下:
"AppSettings": {
...
"CorsAllowAll": true
...
}
{ "AllowedOrigins": ["http://localhost:8080", "http://localhost:3000"] }
- TyrrrzConfiguration.GetValue<string[]>("AllowedOrigins")
,而必须通过一些麻烦的步骤来完成它。 - Mladen Mihajlovic