Обработка сеансов IFrame и родительского фрейма

У меня есть приложение, в котором нет времени ожидания сеанса, мы не хотим, чтобы нашим пользователям приходилось входить в систему каждый раз, когда они заходят на сайт, или даже если они бездействовали. Недавно мы сотрудничали с внешним поставщиком, чтобы предоставить некоторые исследовательские данные, которые мы визуализируем в i-frame. У поставщика есть 30-минутный сеанс, после того как этот сеанс истечет в iframe, пользователям будет предложено повторно войти на сайт поставщика. Как я уже говорил ранее, мы не хотим, чтобы конечный пользователь входил в систему несколько раз.

Решение, которое я придумал, заключалось в том, что когда сеанс конечных пользователей истечет в iframe, будет вызов javascript:

/if called from an iframe, refresh the containing window

if (self != top) {

  window.parent.location.href = window.parent.location.href;

} 

Я проверил это локально, и это работает, т.е. и родительский элемент, и iframe работали на одном сервере приложений, однако, когда он развернут на 2 разных доменах (родительское окно и i-frame работают на разных серверах приложений), он все еще отправляет пользователей на экран входа в систему поставщика, и если я просто нажму кнопку «Обновить», я успешно повторно войду в систему без необходимости предоставлять учетные данные.

Пара вопросов:

  1. Кто-нибудь может придумать другой способ справиться с этой проблемой?
  2. Любая идея, почему это будет работать локально, но не в разных доменах?

person keith h    schedule 27.09.2011    source источник


Ответы (1)


я думаю, вам нужно изменить URL-адрес родительского окна из содержимого IFRAME

Содержимое родительского окна:

<b>iframe starts here</b><br><br>
<iframe src='iframe1.html'></iframe>

<br><br>
<b>iframe ends here</b>

<script type="text/javascript">
    function change_parent_url(url)
    {
    document.location=url;
    }       
</script>

Содержимое iframe:

IFRAME content<br><br>

 <a href="javascript:parent.change_parent_url('http://yahoo.com');"> 
Click here to change parent URL </a>
person nullmicgo    schedule 28.09.2011