Проблемы с файлом cookie сеанса ASP .NET в системе единого входа SAML - PullRequest
0 голосов
/ 17 июня 2019

Я работаю над веб-проектом (IIS), ориентированным на .NET 4.0. Я пытаюсь подключиться к стороннему поставщику, используя SAML для единого входа.

Мой продукт настроен на две рамки: верхняя часть для меню, нижняя часть для содержимого. Когда я пытаюсь загрузить сторонний контент в нижнем фрейме, происходит сбой, потому что в нем отсутствует cookie сеанса. Если я установлю сторонний сайт для открытия в новой вкладке вместо нижней рамки, файл cookie сеанса будет присутствовать и будет корректным.

Я смотрел оба в Fiddler. Первоначальный ответ третьей стороны является результатом 302 и устанавливает 2 файла cookie - .AspNetCore.Session и версию сервера. Это происходит в обоих сценариях.

При последующем общении мой сайт всегда отправляет файл cookie версии сервера. Но он только отправляет файл cookie .AspNetSore.Session, если настроен на открытие в новой вкладке. Я не получаю никаких ошибок, кроме стороннего сайта, отклоняющего соединение из-за отсутствующего сеансового cookie (в iframe).

Мой сайт имеет свой собственный файл cookie ASP.NET_SessionId. Мы не достигли предела в отношении файлов cookie, и у меня возникает та же проблема, даже когда я удаляю все файлы cookie перед попыткой, поэтому мне интересно, существует ли конфликт между моим файлом cookie сеанса и файлом cookie стороннего производителя.

Инструмент SAML, который я использую - это ComponentSpace, и его поддержка подтвердила, что он отправляет сообщение через браузер, который затем можно использовать для вызова состояния сеанса. Мой фрагмент кода, который выполняет единый вход, состоит из одной строки - вызова библиотеки ComponentSpace. Если я проверю ответ после завершения этой строки, сторонний файл cookie сеанса уже исчезнет.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 19 июня 2019

Не думаю, что это напрямую связано с библиотекой SAML. Я предлагаю создать небольшой тестовый проект, который демонстрирует проблему. Заархивируйте его и отправьте в ComponentSpace, чтобы они могли точно видеть, что происходит, и могли воспроизвести проблему.

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