2009-07-04 20 views

答えて

1

EDIT

はあなたのコメントに基づいて、私はあなたの他のコントローラのすべてから派生しますカスタムベースコントローラを介してこれを処理することをお勧め。カスタムベースコントローラーにOnActionExecutingをオーバーライドさせ、期限切れの状態をチェックします。状態が期限切れになっている場合は、応答(FormsAuthentication.SignOut)から認証Cookieを削除し、ActionExecutingContextパラメータのResultプロパティをHttpUnauthorizedResultに設定します。あるいは、単にログアウトアクションにリダイレクトすることもできます。

また、セッションタイムアウトとフォーム認証のクッキータイムアウトが同じであることを確認する必要があります。

オリジナルの答えは、私はあなたが求めている正確に何か分からない状況

放置しました。サーバーセッションが期限切れになると、クッキー内の認証チケットはもはや有効ではなくなります。承認を必要とするアクション(最小限の認証が必要)では、HttpUnauthorizedResultが返されます.HttpUnauthorizedResultは、デフォルトでFormsログオンページにリダイレクトされます。

クライアント側でセッションを期限切れにする方法を尋ねているので、クライアントは要求がなくても何かをしますか?もしそうなら、私はjavascript/ajax経由でこれをどのように処理するのか興味があります。私のブログ記事client-side session terminationhttp://farm-fresh-code.blogspot.comに見てください。

+0

セッションのセッション状態サービスの有効期限が切れるので、有効期限が切れているクライアントクッキーがまだ有効です – mamu

+0

あなたのコメントに基づいて自分の回答を更新しました。 – tvanfosson

0

私はあなたがサインアウトした後にブラウザの履歴をクリアしたいと思います。

+1

IMHOに関するご質問は*サーバー側*セッション無効になります。 – Boldewyn