2011-07-20 6 views
0

複数の.aspxページを持つプロジェクトを開発しました。私はほとんどすべてのページで多くのセッションを利用しています。いずれかのセッションが期限切れになると、アプリケーションはエラーをスローします。私は作成したすべてのセッションのすべてのページでセッションの有効期限を確認したくありません。誰も私にこの問題を解決する方法を提案することができます。事前複数のページで作成されたセッションのセッション時間にログインページにリダイレクトする方法は?

答えて

1

おかげで使用されることはありませんが、私はGlobal.asaxファイルのSession_End(object sender, EventArgs e)方法は、この目的のために使用することができると思います。

もう1つの解決策は、プロジェクトのSite.Masterページのセッションステータスをチェックすることです。他のページはこのページをマスターページとして使用する必要があります。

+1

これは正確には使用されていませんが、セッションが終了するとイベントが発生し、存在しないセッション変数にアクセスしたときにysodではなく正常に処理できます。 – Stuart

0

セッション変数の値が実際に存在するかどうかを確認していない場合、さまざまなシナリオでアプリケーションが壊れる可能性があります。 InProc(メモリ)を使用している場合、アプリケーションがリサイクルされた場合(またはweb.configの更新によって)セッション変数が強制終了される可能性があります。変数が実際にセッション内に存在するかどうかを確認する以外に、すべてのシナリオを処理するより良い方法はありません。それがベストプラクティスです。予想外のクラッシュを望まない場合は、その条件を追加する価値があります。

あなたはすべての変数を再投入するためにsession_endイベントを使用できますが、それはブレークプルーフではありません。

関連する問題