Теряет состояние сеанса в iframe, но не во всплывающем окне - PullRequest
5 голосов
/ 17 апреля 2009

Мы разрабатываем интернет-магазин и обрабатываем платежи с помощью стороннего пользовательского интерфейса.

Мы выбрали отображение платежного интерфейса внутри страницы извлечения iframe, хотя (теперь мы понимаем), поставщик платежных решений рекомендует использовать окно верхнего уровня.

Теперь происходит то, что в IE7 / IE8 интерфейс оплаты теряет состояние сеанса при первой обратной передаче (внутри iframe), тогда как в Firefox он работает просто отлично. Мы видим, что интерфейс оплаты разработан с использованием ASP.NET.

У меня сложилось впечатление, что в том, что касается сервера, нет никакой разницы между ссылками из iframe и из окна верхнего уровня, но ясно, что есть.

У кого-нибудь есть подсказка? Что делает iframe, который может иметь значение для сервера платежей, вызывая его потерю состояния сеанса?

Может ли это (вдруг до меня дошло) быть различиями в обработке файлов cookie? Возможно, более строгая безопасность?

Ответы [ 3 ]

7 голосов
/ 17 апреля 2009

Вероятно, вызвано этим:

В Internet Explorer 6 появилась поддержка проекта «Платформа для настройки конфиденциальности» (P3P). Стандарт P3P отмечает, что если FRAMESET или родительское окно ссылаются на другой сайт внутри FRAME или внутри дочернего окна, дочерний сайт считается сторонним контентом. Internet Explorer, который использует настройку конфиденциальности по умолчанию Medium, молча отклоняет файлы cookie, отправленные со сторонних сайтов.

http://support.microsoft.com/kb/323752/en-us

Однажды я слышал, как кто-то сказал, что IFrame - это на самом деле новый экземпляр IE, но, видимо, он немного сложнее.

1 голос
/ 17 апреля 2009

Вы могли бы найти эту статью Милана Негована полезной, чтобы объяснить, почему страницы в рамке получают отдельный идентификатор сеанса. В статье также рассказывается о решении P3P, упомянутом Джерри Шенком выше.

0 голосов
/ 17 апреля 2009

так что структура вашего кода / сайта будет выглядеть примерно так:

  1. На сайте A есть страница 1, в которой есть фрейм, отображающий сайт B
  2. iframe обновляется и теперь отображает страницу 2 с сайта A

и когда вы щелкнете правой кнопкой мыши по содержимому iframe, вы сможете убедиться, что URL соответствует сайту A?

Если вы отлаживаете, срабатывает ли ваша точка останова, как ожидалось?

...