私のasp.net mvcでは、サーバーセッションが終了したときにブラウザセッションを終了させるコードを置く場所。アクション属性を使用できますか?どちらが最善でしょうか?クライアントセッションを期限切れにする最善の方法は何ですか?
1
A
答えて
1
EDIT
はあなたのコメントに基づいて、私はあなたの他のコントローラのすべてから派生しますカスタムベースコントローラを介してこれを処理することをお勧め。カスタムベースコントローラーにOnActionExecutingをオーバーライドさせ、期限切れの状態をチェックします。状態が期限切れになっている場合は、応答(FormsAuthentication.SignOut)から認証Cookieを削除し、ActionExecutingContextパラメータのResultプロパティをHttpUnauthorizedResultに設定します。あるいは、単にログアウトアクションにリダイレクトすることもできます。
また、セッションタイムアウトとフォーム認証のクッキータイムアウトが同じであることを確認する必要があります。
オリジナルの答えは、私はあなたが求めている正確に何か分からない状況
放置しました。サーバーセッションが期限切れになると、クッキー内の認証チケットはもはや有効ではなくなります。承認を必要とするアクション(最小限の認証が必要)では、HttpUnauthorizedResultが返されます.HttpUnauthorizedResultは、デフォルトでFormsログオンページにリダイレクトされます。
クライアント側でセッションを期限切れにする方法を尋ねているので、クライアントは要求がなくても何かをしますか?もしそうなら、私はjavascript/ajax経由でこれをどのように処理するのか興味があります。私のブログ記事client-side session terminationをhttp://farm-fresh-code.blogspot.comに見てください。
0
セッションのセッション状態サービスの有効期限が切れるので、有効期限が切れているクライアントクッキーがまだ有効です – mamu
あなたのコメントに基づいて自分の回答を更新しました。 – tvanfosson