Asp.net core 向builder.WithOriginates提供源代码数组(位于AddCors中)
我以为已经有答案了,但我找不到答案 我在API服务器中有一个这样的CORS设置Asp.net core 向builder.WithOriginates提供源代码数组(位于AddCors中),asp.net-core,asp.net-core-webapi,Asp.net Core,Asp.net Core Webapi,我以为已经有答案了,但我找不到答案 我在API服务器中有一个这样的CORS设置 services.AddCors(options => { options.AddDefaultPolicy(builder => { builder.WithOrigins(AddCorsOrigin1LocalHost, AddCorsOrigin2ProductionSite,
services.AddCors(options =>
{
options.AddDefaultPolicy(builder => {
builder.WithOrigins(AddCorsOrigin1LocalHost,
AddCorsOrigin2ProductionSite,
AddCorsOrigin3DevOrTestOrSomethingElseSite);
builder.AllowAnyMethod();
builder.AllowAnyHeader();
builder.AllowCredentials();
});
});
我使用本地字符串一个接一个地添加我想要的站点。只要我只有3个来源就行了。我可以随时更改原点
但是,如果我有第四个或更多的原点,我必须添加一个新的本地字符串并在上面的代码块中更新它
我很好奇,不管怎样,我可以简单地发送一个数组或列表的字符串集合。这样,当我必须添加或删除源代码时,我可以简单地操作字符串集合。您可以在appsettings.json中设置站点: 下面是一个演示: json(我添加了源代码): Startup.cs(将
Origins
更改为字符串[]):
结果:
啊。看起来很整洁。我将测试它并在这里更新。它可以工作。它还向我展示了如何将应用程序设置用于所有类型的其他值存储。很好。
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"Origins": "http://example.com,http://www.contoso.com"
}
string[] s = Configuration["Origins"].Split(",");
services.AddCors(options =>
{
options.AddPolicy(name: MyAllowSpecificOrigins,
builder =>
{
builder.WithOrigins(s);
});
});