2009-08-05 23 views
0

最初に、セッションにキー値のペアを追加し、そのページでセッションがそのペアを保持していることを確認するログインページを作成しました。 次に、セッションでそのペアを探している別のページに移動しようとしましたが、そこにはありません。セッションのタイムアウトを15000に設定してタイムアウトにならないようにしました。 私は現在、セッションを見るために静的クラス、HttpContext.Current.Sessionを使用しています。 各ページは、この静的クラスを呼び出して、セッションを調べますが、ログインページのペアを除いて、セッションキーのカウント= 0になります。ASP.NETセッションがページ間に保存されていない

public static class UserAuthenticationManager 
{ 
    public static bool IsAuthenticated() 
    { 
     UserAuthenticationTicket ticket = ((UserAuthenticationTicket)HttpContext.Current.Session[DefinesPL.UserTicketSessionName]); 

     string redirectUrl = String.Format(DefinesPL.LoginPage); 

     if (ticket != null) 
     { 
      if (ticket.IsExpired()) 
      { 
       HttpContext.Current.Session.Abandon(); 
       HttpContext.Current.Response.Redirect(redirectUrl, true); 
      } 
     } 
     else 
     { 
      HttpContext.Current.Session.Abandon(); 
      HttpContext.Current.Response.Redirect(redirectUrl, true); 
     } 

     return true; 
    } 
+0

ブラウザでCookieが保存されていることを手動で確認しましたか? firefoxを使用している場合は、ビューのCookieアドオンを試すことができます。例: https://addons.mozilla.org/en-US/firefox/addon/315 –

答えて

1

最も一般的な原因は、クッキーが無効になっていることです。クッキーを要求するか、cookieless session modelに切り替える必要があります。これはやや難しい作業です。

1

あなたのプロジェクトにGlobal.asaxが追加されていることを確認したい場合もあります。私はこれまでに、HTTPリクエストごとに新しいセッションが作成されたと思います。

関連する問題