2009-04-04 17 views
1

私はasp.netのstateserverに保存されたsessionstateを使用しています。ユーザーのログインIDを表示するヘッダーにリンクがあります。asp.netセッション管理

問題:

セッションはは、StateServer私のアプリケーションに失効まだログインIDを表示し、それがセッションに格納された値に依存エラーヒットコードをスローします。

asp.netはstateserverでセッションが期限切れになるのを知らず、ユーザーのブラウザのcookieに保存された値と同じセッションで作業を続けるように見えます。

別のアプリケーションでこの問題に取り組むために、私は各要求でセッションをチェックしており、セッションが期限切れになっている場合はセッションを終了します。

私はここで正しいことをしているとは確信していません。 asp.netは、セッションと同期されたセッションデータをstateserverのセッションと同期させることを想定していませんか?

これを処理するためのベストプラクティスを教えてください。

答えて

0

ASP.Net Webformsを使用している場合、セッションが終了したかどうかを確認するために、ページまたはコントロールのLoadイベントを検討できます。ここに関連するコードは、フォーム認証のための私のセッションタイムアウト値は、デフォルトですべての回答については

if(Session["yourvar"] == null) 
    ShowError(); 
2

適切な方法は、ポストバックを受け取るたびにユーザーのセッションを「見つける」ことです。それが見つからない場合は、セッションが終了して再度ログインする必要があるというエラーを報告してください。

0

おかげで、

だてsessionState次に高かったです。これによりセッションが終了し、問題が発生しました。私はフォーム認証の値をsessionstateよりも少し低く保つことがベストプラクティスになると思います。