. NET Основной блок политики CORS - PullRequest
0 голосов
/ 13 июля 2020

На сервере iis есть два приложения, одно взаимодействует с внешним интерфейсом, а другое - с серверной частью. веб-API работает как поддомен. например, api.mydomain.com.

Я получаю следующую ошибку, когда отправляю запрос веб-API из внешнего интерфейса.

Доступ к XMLHttpRequest в 'https://api.mydomain.com/api/auth/login' из origin 'https://.mydomain.com' заблокирован политикой CORS: ответ на предварительный запрос не проходит проверку контроля доступа: на запрошенном ресурсе отсутствует заголовок 'Access-Control-Allow-Origin'.

        services.AddCors(options =>
        {
            options.AddPolicy("AllowOrigin",
                builder => builder.WithOrigins("https://*.mydomain.com").AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials());
        });

app.UseCors("AllowOrigin");

Нужно ли мне менять настройки IIS, где мне менять?

РЕШЕНИЕ:

  1. Прежде всего, установите все настройки cors из веб-конфигурации в «*».
  2. Во-вторых, отключите modsecurity на панели plesk.

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

реализовано в версии 2.0.0

options.AddPolicy("MyCorsPolicy",
       builder => builder
          .SetIsOriginAllowedToAllowWildcardSubdomains()
          .WithOrigins("https://*.mydomain.com")
          .AllowAnyMethod()
          .AllowCredentials()
          .AllowAnyHeader()
          .Build()
       );
    app.UseCors("MyCorsPolicy");

https://docs.microsoft.com/fr-fr/dotnet/api/microsoft.aspnetcore.cors.infrastructure.corspolicybuilder.setisoriginallowedtoallowwildcardsubdomains?view=aspnetcore-2.2

0 голосов
/ 13 июля 2020

Если вы размещаете свое веб-приложение на IIS, вам также необходимо сообщить IIS о политике cors.

вам необходимо отредактировать свою веб-конфигурацию, как описано здесь:

https://enable-cors.org/server_iis7.html

...