1

セッション タイムアウトのないアプリケーションを使用しています。ユーザーがサイトにアクセスするたびに、またはアイドル状態のままであっても、ログインする必要はありません。最近、外部ベンダーと提携して、i-frame でレンダリングしている調査データを提供しました。ベンダーは、そのセッションが iframe で期限切れになった後、30 分間のセッションを持ち、ユーザーはベンダー サイトに再ログインするよう求められます。前に述べたように、エンド ユーザーが複数回ログインすることは望ましくありません。

私が思いついた解決策は、エンドユーザーのセッションが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. これがローカルでは機能するが、ドメイン間では機能しない理由は何ですか?
4

1 に答える 1

0

親ウィンドウの 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>
于 2011-09-28T05:40:01.447 に答える