#asp.net-core #asp.net-core-webapi
#asp.net-ядро #asp.net-core-webapi
Вопрос:
Я думал, что на это уже будет ответ, но я не смог его найти.
У меня есть настройка CORS, подобная этой, на моем сервере API.
services.AddCors(options =>
{
options.AddDefaultPolicy(builder => {
builder.WithOrigins(AddCorsOrigin1LocalHost,
AddCorsOrigin2ProductionSite,
AddCorsOrigin3DevOrTestOrSomethingElseSite);
builder.AllowAnyMethod();
builder.AllowAnyHeader();
builder.AllowCredentials();
});
});
Я добавляю сайты, которые я хочу, один за другим, используя локальную строку. Это работает до тех пор, пока у меня есть только 3 источника для использования. Я могу продолжать изменять исходные данные, когда захочу.
Однако, если у меня есть 4-й источник или более источников, я должен добавить новую локальную строку и обновить ее в приведенном выше блоке кода.
Мне любопытно, есть ли в любом случае, я могу просто отправить коллекцию строк из массива или списка. таким образом, когда мне нужно добавить или удалить исходные данные, я мог бы просто манипулировать коллекцией строк.
Ответ №1:
Вы можете настроить сайты в appsettings.json:
Вот демонстрация:
appsettings.json (я добавляю к нему исходные данные):
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"Origins": "http://example.com,http://www.contoso.com"
}
Startup.cs(изменить Origins
на строку[]):
string[] s = Configuration["Origins"].Split(",");
services.AddCors(options =>
{
options.AddPolicy(name: MyAllowSpecificOrigins,
builder =>
{
builder.WithOrigins(s);
});
});
Комментарии:
1. ах. выглядит аккуратно. Я протестирую его и обновлю здесь.
2. это работает. и это также показало мне, как использовать настройки приложения для всех видов хранения других значений. очень хорошо.