Я поддерживаю расширение Azure DevOps ( История, источник на Github) и я наблюдаем различное поведение аутентификации между краем (и хромированным), с одной стороны, и Firefox, с другой стороны. Чтобы дать немного контекста: когда расширение установлено, Azure DevOps включает новую кнопку на одной из ее стандартных страниц, которые при нажатии на нажатие вызовут код JavaScript моего расширения, а затем показывает контент, сгенерированный моим расширением в элемент на странице. Расширение получает контент откуда -то еще в Azure DevOps через некоторые API -интерфейсы отдыха. Контент может включать URL -адреса изображения (подумайте об изображениях, которые были введены пользователем в некотором поле описания). Полученная страница затем выглядит следующим образом: < /p>
Код: Выделить всё
http://example.com/_apis/public/gallery/publisher/Sedenion/extension/HistoryDiff/1.5.1.0/assetbyname/dist/historydiff.html
< /code>
Я открываю браузер и перейду на стандартную страницу Azure DevOps. Мне нужно войти в систему, используя мои учетные данные для доступа к ним, как на краю, так и на Firefox. Мое расширение еще не вовлечено. Затем я нажимаю кнопку, которая заставит Azure DevOps загружать мое расширение, что генерирует вышеизложенное HTML. Теперь идет интересная часть: Edge/Chrome загружает и отображает страницу, включая изображение, просто отличное, не спрашивая меня о моих учетных данных, в то время как Firefox просит меня снова аутентифицировать. Это происходит, когда браузер пытается получить изображение. Если я откажусь от аутентификации во второй раз, изображение не загружается (в инструментах разработчика я вижу «401 несанкционированный»).
Несколько вещей примечания:
[list]
[*] Все имеет такое же происхождение: Azure DevOps доступны через http://example.com [*] Атрибут песочницы iframe. Одно-оригин .
[*] В Firefox я могу открыть изображения просто в новой вкладке без необходимости второй аутентификации. (Например, щелкнув правой кнопкой мыши на изображение, которое не удалось загрузить после того, как я отказался аутентифицировать второй раз и решив открыть его на новой вкладке из контекстного меню.)
[/list]
Может ли кто -нибудь объяснить различное поведение браузеров? Есть ли способ пропустить второй этап аутентификации в Firefox (например, через некоторую конфигурацию браузера)?
Подробнее здесь: https://stackoverflow.com/questions/794 ... -in-edge-b
Мобильная версия