2011-09-27 4 views
1

세션 시간 제한이없는 응용 프로그램이 있는데 사용자가 사이트에 갈 때마다 또는 유휴 상태로 있어도 로그인하지 않아야합니다. 우리는 최근 외부 공급 업체와 협력하여 i- 프레임에서 렌더링하는 일부 연구 데이터를 제공했습니다. 사용자가 공급 업체 사이트에 다시 로그인하라는 iframe에서 해당 세션이 만료 된 후 공급 업체는 30 분 세션을 갖습니다. 앞서 말했듯이 우리는 최종 사용자 로그인을 여러 번하고 싶지 않습니다.IFrame 및 상위 프레임 세션 처리

최종 사용자 세션에 자바 스크립트 호출이있을 것 iframe에 만료 된 때이었다 해낸 해결책 : 나는 로컬에서 테스트

/if called from an iframe, refresh the containing window 

if (self != top) { 

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

} 

하고, 즉 부모와 iframe이 모두 작동 동일한 응용 프로그램 서버에서 실행 중이지만 2 개의 다른 도메인 (상위 응용 프로그램과 다른 응용 프로그램 서버에서 실행되는 I- 프레임)에 배포 할 때 여전히 사용자를 공급 업체의 로그인 화면으로 보냅니다. 새로 고침 자격 증명을 제공하지 않아도 성공적으로 다시 로그인되었습니다.

몇 가지 질문 :

  1. 이 문제를 처리하는 생각할 수있는 다른 방법의 사람이 있습니까?
  2. 이것이 로컬에서는 작동하지만 도메인 간에는 작동하지 않는 이유는 무엇입니까?

답변

0

는 난 당신이 IFRAME 내용에서 부모 윈도우의 URL을 변경할 필요가 있다고 생각

부모 윈도우의 내용 :

<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>