フォーム認証を使用する ASP.NET Web アプリケーションの場合、次のコードを追加してGlobal.asax
、セッションの有効期限が切れたときにユーザーをログアウトさせます。
void Session_Start(object s, EventArgs e)
{
if (Request.IsAuthenticated)
{
FormsAuthentication.SignOut();
/* cache clean up code */
FormsAuthentication.RedirectToLoginPage();
}
}
Session
これは、既存のコードで変数がチェックされずに使用されることによる問題を防ぐためです。ただし、ユーザーがログインしていないときにセッションが期限切れになると、コードがログインの成功を妨げ、ユーザーをログインページに常にリダイレクトすることに気付きました。セッション Cookie を削除すると通常のログインが再び有効になるため、問題は設定されたままのセッション Cookie にあるようです。セッション Cookie の値を編集すると、ログイン ループが発生します。