Включить CORS для веб-API, развернутого в службе Azure Web App с включенной аутентификацией - PullRequest
0 голосов
/ 23 сентября 2018

У меня странная проблема с CORS, которая работает, если я отключаю аутентификацию в службе веб-приложений Azure.

Настройка:

  1. Доступ к веб-API осуществляется через страницу с другого онлайн-сайта sharepoint.
  2. API развернут в приложении Azureоказание услуг.Аутентификация включена.
  3. Я настроил глобальное добавление заголовков через global.asax.

       Context.Response.AddHeader("Access-Control-Allow-Origin", "*");
        Context.Response.AddHeader("Access-Control-Allow-Headers",
            "Origin, X-Requested-With, Content-Type, Accept,MaxDataServiceVersion");
        Context.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
        Context.Response.AddHeader("Access-Control-Allow-Credentials", "true");
    

Результаты:

  1. Я попытался отключить аутентификацию.Конечно, этого не произойдет в прямом эфире.Но запрос выполнен успешно, и CORS ничего не блокирует.
  2. Я снова включил аутентификацию, заголовки CORS добавлены к URL-адресу API, но весь запрос не работает, поскольку URL-адрес аутентификации из имени входа Microsoft по умолчаниюблокируется.

Я разрешил всем источникам просто посмотреть, добавлены ли заголовки, но он продолжает каким-то образом блокировать его для URL-адреса аутентификации.

Кто-нибудь сталкивался с этим раньше?или я где-то пропустил настройку?

Заранее спасибо.

1 Ответ

0 голосов
/ 24 сентября 2018

Я думаю, вы не можете определить сайт с несколькими источниками через веб-конфигурацию?Есть ли способ сделать это только с помощью Интернета.Для этого требуется конфигурация или специальный код?

Мы могли бы легко включить CORS для Azure WebApp с порталом Azure.Вы используете *, чтобы разрешить всем источникам совершать перекрестные звонки.Из этого учебного пособия .

можно использовать дополнительную информацию о совместном использовании ресурсов (CORS), позволяющую коду JavaScript, запущенному в браузере на внешнем хосте, взаимодействовать ствой бэкэндУкажите источники, которым следует разрешить совершать вызовы из разных источников (например: http://example.com:12345). Чтобы разрешить все, используйте «*» и удалите все остальные источники из списка. Косые черты запрещены как часть домена или послеTLD.

enter image description here

Обновление:

Это известное ограничениеПортал Azure, который должен быть исправлен в будущем.

Как вы упомянули об учетных данных с помощью CORS, он не поддерживается , если вы используете функцию CORS портала * 1031.*, но если вы отключите его (удалив все домены), вы можете обработать CORS внутри своего кода и настроить его

Для получения дополнительной информации, пожалуйста, обратитесь к этому блогу .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...