Теряет состояние сеанса в iframe, но не во всплывающем окне

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

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

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

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

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

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


person Tor Haugen    schedule 17.04.2009    source источник


Ответы (3)


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

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

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

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

person Gerrie Schenck    schedule 17.04.2009
comment
Вы можете исправить это, убедившись, что и у вас, и у поставщика платежей определен оператор P3P: это позволит IE принимать сторонние файлы cookie - пришлось делать аналогичные вещи, когда IE 6 вышел для рекламы, обслуживаемой в IFrame из удаленной рекламы. сервер. - person Zhaph - Ben Duguid; 17.04.2009

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

person Cerebrus    schedule 17.04.2009
comment
Ссылка на статью теперь перенаправляет на сайт на азиатском языке ... не нажимайте. - person ooXei1sh; 27.07.2017

поэтому структура вашего кода / сайта будет примерно такой:

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

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

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

person Mr W    schedule 17.04.2009
comment
Нет. Сайт Страница 1 отображается все время. Внутри сайта A страница 1 - это iframe, который отображает страницу 1 сайта B. Страница 1 сайта B отправляет обратно (внутри iframe) на страницу сайта B 2. Теперь страница 2 сайта B не имеет состояния сеанса. - person Tor Haugen; 17.04.2009