■
仕事でASP.netで作成されたWEBアプリケーションで、
Session変数を使用してページ間のデータの受渡しをしているのですが、
そのSession変数が消えるということが発生しました。
問題が無い時と問題が発生する時があり、
以下の状況で発生していました。
■framesetを使用している。 ■IEのCookieの設定の「自動Cookie処理を上書きする」をOFf
いろいろ調査したところ、Microsoftのページにこんな内容が、
Internet Explorer 6.0 で FRAMESET を使用するとセッション変数が失われる
なるほど、framesetを使用するときのsession変数の使用には注意する必要がありますね。
要約としては、
■ASP.netでframesetを使用した場合にsession変数を使用すると session変数は保存できるが ページが遷移して別のページに移った時にsession変数が消えてしまう場合がある。
■回避方法は以下の2通り 1.IEのインターネットオプションから、 「プライバシー」−「詳細設定」−「自動Cookie処理を上書きする」をOnにする。 2.IEのインターネットオプションから、 「プライバシー」−「サイト」から、ページ遷移先のアドレスを追加する。
1.の方法ではセキュリティ面に不安があるため、
2の方法が良いですね。
Microsoftではバグではなく仕様であるとのことです。
まぁ、もともとframesetを使用してのフレーム分割は推奨されていないため、
極力使用しないようにしたいですね。