Браузеру Microsoft Edge не удается загрузить веб-приложение в IFrame. Получение этой ошибки - этот контент не может быть показан во фрейме - PullRequest
0 голосов
/ 25 мая 2020

Я получаю указанную ниже ошибку в Microsoft Edge. Но в Chrome работает нормально. Ниже приведены подробности реализации. Электронная почта пользователя, вошедшего в систему, фиксируется при загрузке домашней страницы с помощью User.Identity.Name

  1. Asp. Net Приложение Webforms, размещенное в Azure.
  2. Включено Azure Аутентификация AD.
  3. Загрузка этого веб-приложения на веб-страницу Intr anet через IFRAME.
  4. intr anet - это SSO, включенное с OKTA.

enter image description here

Ответы [ 2 ]

2 голосов
/ 25 мая 2020

Вы сталкиваетесь с тем, что делает X-Frame-Options.

Заголовок HTTP-ответа X-Frame-Options может использоваться, чтобы указать, следует ли разрешить браузеру отображать страницу в <frame>, <iframe>, <embed> или <object>. Сайты могут использовать это, чтобы избежать атак с использованием кликджекинга, гарантируя, что их контент не встраивается в другие сайты.

Источник: X-Frame-Options на MDN

Если вам принадлежит страница, которую вы пытаетесь запустить внутри IFrame, убедитесь, что вы явно указали правильное значение для заголовка X-Frame-Options. Если вы этого не сделаете: зачем отображать его в IFrame?

Если вы работаете с Chrome, которое ведет себя иначе, чем Edge, посмотрите, как используется заголовок, и поддерживает ли Chrome его. Например, ALLOW-FROM не поддерживается Chrome.

Дополнительная информация: caniuse.com для x-frame-options .

Документ MDN, который я связал ранее о ALLOW-FROM:

ALLOW-FROM uri (устарело)
Это устаревшая директива, которая больше не работает в современных браузерах. Не используйте это. При поддержке устаревших браузеров страница может отображаться только во фрейме с указанным исходным uri.

EDIT:
В качестве дополнения к вашему оператору

Похоже, нет другого варианта, кроме удаления Azure аутентификации AD

Вы никогда не должны отображать какие-либо страницы входа в iframe из-за проблем, связанных с тряской. Это не ограничивается аутентификацией Azure AD, это верно для любых без исключения вариантов аутентификации.

Azure Аутентификация AD также имеет всплывающую опцию. Например: если вы используете MSAL. js, вот что:

Вы можете входить в систему пользователей вашего приложения в MSAL. js двумя способами:

  • Всплывающее окно с использованием метода loginPopup
  • Перенаправление с помощью метода loginRedirect

Источник: Одностраничное приложение: Вход и выход

0 голосов
/ 26 мая 2020

Вы должны попробовать проверить заголовок X-Frame-Options. Заголовок X-Frame-Options может использоваться для управления возможностью размещения страницы в IFRAME.

Кроме того, обратите внимание, что этот токен должен быть отправлен как заголовок HTTP, и директива будет проигнорирована, если найдена в теге META HTTP-EQUIV. Вы можете обратиться к этой статье для получения дополнительной информации.

Если у вас есть контроль над Сервером, который отправляет содержимое iframe, вы можете обратиться к этой статье и эта ссылка о настройке значения.

Дополнительная информация: Как установить 'X-Frame-Options' в iframe?

...