none
セッション管理について RRS feed

  • 質問

  • あるWebサイトからブラウザを新規に別ウィンドウで開くます。

    その後、別ウィンドウを閉じると呼出元のWebサイトで保持していたセッションが破棄されます。

    (新規で開いた別ウィンドウは呼出元と同じWebサイトを参照しています。)

     

    上記について、セッションが破棄されないようにするにはどうすればいいでしょうか?

     

    セッションの保持についてはIIS7のASP.NET4で下記のようなコードで保持をしています。

    HttpContext.Current.Session["test"] = "test";

    2011年7月5日 7:27

回答

  • 純粋に Silverlight の話だと思いますので、Silverlight のフォーラムで質問する方が回答が得られやすいと思います。。
    WebBrowser コントロールから別ウィンドウをオープンして、元の WebBrowser コントロールを含むウィンドウを閉じた場合に、WebBrowser コントロールが持っていた Cookie を別ウィンドウが保持できるか、という話ではないでしょうか。
    • 回答としてマーク kaihatusha 2011年7月6日 11:56
    2011年7月5日 8:24

すべての返信

  • 回答ではありませんが、ブラウザーの動作に関係する話だと思いますので、現象が発生するブラウザーのバージョンと実際の別ウィンドウの開き方(コードとか)を明らかにするのがいいと思います。
    2011年7月5日 7:49
  • 別ウィンドウの開き方はSilverlightのOut of browserよりWebBrowserコントロールからUrlを指定して開いています。

    このWebBrowserコントロールを保持しているChildWindowを閉じると既存セッションが破棄されます。

     

    2011年7月5日 7:56
  • 純粋に Silverlight の話だと思いますので、Silverlight のフォーラムで質問する方が回答が得られやすいと思います。。
    WebBrowser コントロールから別ウィンドウをオープンして、元の WebBrowser コントロールを含むウィンドウを閉じた場合に、WebBrowser コントロールが持っていた Cookie を別ウィンドウが保持できるか、という話ではないでしょうか。
    • 回答としてマーク kaihatusha 2011年7月6日 11:56
    2011年7月5日 8:24
  • いろいろと情報がたりなくて、すいません。

     

    原因は分かりませんでしたが、問題の現象は解決しましたので、明記します。

    <問題となった現象>

    ①Silverlightのある画面よりレポート表示用の画面を表示します。

    ②レポート表示用画面ロード時、レポート表示用のWebブラウザーコントロールのurlにレポート(pdf)の絶対urlを指定します。

    ③レポート表示後にレポート表示用画面を閉じます。

    ④元画面に戻って、Webサーバーに対してリクエストを発行するとセッションが破棄されています。

     

    <解決策>

    ②にてブラウザーコントロールのurlにpdfの絶対urlを指定せずにapsxを指定し、apsxからpdfをresponseする。

    上記を行うとレポート表示用画面を閉じても、元画面のセッションは破棄されませんでした。

     

    2011年7月5日 9:47