Как сохранить состояние сеанса из iframe во всплывающем окне? - PullRequest
0 голосов
/ 05 октября 2009

Я делаю веб-приложение для клиента, у которого есть клиенты, которые хотят разместить логин в приложении внутри iframe на своих веб-сайтах. При успешном входе в систему мы хотим открыть приложение в новом всплывающем окне, но кажется, что зарегистрированный сеанс сохраняется только внутри iframe, а не в главном окне или во всплывающем окне. Это проблема только в IE, а не в любом другом браузере.

Есть ли способ реализовать это?

Поток такой:

  1. Пользователь заходит на сайт клиента (www.url1.com)
  2. Пользователь входит в приложение, которое находится в iframe (с сайта www.url2.com)
  3. Приложение в iframe проверяет логин
  4. Приложение в iframe использует window.open для откройте приложение в новом, отдельном окна

РЕДАКТИРОВАТЬ: Fiddler показывает, что то, что происходит в iframe, связано с одним процессом iexplore, а то, что происходит в главном окне, связано с другим. Это, очевидно, является проблемой, это можно обойти?

Ответы [ 2 ]

3 голосов
/ 05 октября 2009

Установка файлов cookie в iframe, который загружает страницу из другого домена, может иногда вызывать некоторые странные проблемы. И если куки не работают, скорее всего, ваш логин не будет работать. Чтобы обойти это в предыдущем случае, мне нужно было добавить собственный заголовок http в IIS / Code, который внезапно заставил все работать.

Пример кода C #:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");
}
1 голос
/ 05 октября 2009

Попробуйте использовать Fiddler , чтобы проверить, отправляются ли файлы cookie, созданные на странице входа (в iframe), во вновь открытое всплывающее окно. Если нет, то это может быть настройка в IE, которая предотвращает это.

Редактировать : чтобы увидеть файлы cookie в Fiddler, перейдите на вкладку Инспекторы , затем на Заголовки . В заголовках запросов (вверх) вы увидите куки, отправленные с сервера в браузер. В заголовках ответа (вниз) вы увидите файлы cookie, отправленные из браузера на сервер (они должны быть отправлены обратно в браузер для последующих запросов).

...