1

これが私のコードです:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Session["Authenticated"] )
        {
            Response.Redirect( "index.aspx", false );
        }
    }

彼らがログインしたら、私はセッションをtrueに設定しました。基本的に、アクティブなセッションがない場合は、インデックス/ログインページにリダイレクトしてもらいます。どうすればこれを達成できますか?

4

2 に答える 2

1

Cookieを使用している場合は、Cookieにマーカーを保存して、「新しいブラウザ+新しいセッション」と「古いブラウザ+期限切れのセッション」の違いを確認できます。

以下は、セッションの有効期限が切れた場合にユーザーを期限切れのページにリダイレクトするサンプルコードです。

void Session_OnStart(Object sender, EventArgs e) 
{ 
  HttpContext context = HttpContext.Current;
  HttpCookieCollection cookies = context.Request.Cookies; 
  if (cookies["starttime"] == null) { 
    HttpCookie cookie = new HttpCookie("starttime", DateTime.Now.ToString()); 
    cookie.Path = "/"; 
    context.Response.Cookies.Add(cookie); 
  } 
  else { 
    context.Response.Redirect("expired.aspx"); 
  } 
}

また、セッションを実装しようとしている場合、これはhttp://aspalliance.com/1621_Implementing_a_Session_Timeout_Page_in_ASPNET.2に役立つ可能性があります。

于 2012-04-13T20:04:43.837 に答える
1

このチェックを使用してください

if(Session["Authenticated"] == null || !(bool)Session["Authenticated"])
于 2012-04-13T20:05:44.673 に答える