2011-01-30 23 views
0

フォーム認証を使用し、セッションをカスタムテーブルに格納するようにasp.NET Webアプリケーションを構成しました。これまでのところ、私がログインすると、認証はブラウザセッション全体にわたって持続します。私はセッションを保存する可能性を把握しようとしていますが、早い時期に問題に立ち向かいます。ASP.NET SqlServerセッション状態

変数と値のペアをセッションオブジェクトに追加してセッション変数をページに出力すると、変数と値のペアが期待通りに表示されますが、ブラウザを閉じて再度開くと、私はsessionidを出力することでそれを確認しますが、変数と値のペアはなくなりました)。

非常にシンプルなものがありますが、ここではセッション変数がブラウザセッション(文字列はシリアライズ可能なのですか?

List<SessionVar> sessionVars = new List<SessionVar>(); 
protected void Page_Load(object sender, EventArgs e) 
{ 
    Session[Session.SessionID] = Session.SessionID; 
    LoadSessionData(); 
} 

protected void btnSessionVariable_Click(object sender, EventArgs e) 
{ 
    Session[txtVariableName.Text.Trim()] = txtVariableValue.Text.Trim(); 
    txtVariableName.Text = string.Empty; 
    txtVariableValue.Text = string.Empty; 
    LoadSessionData(); 
} 

private void LoadSessionData() 
{ 
    sessionVars.Clear(); 
    foreach (string key in Session.Keys) 
    { 
     sessionVars.Add(new SessionVar(key, (string)Session[key])); 
    } 
    gridView.DataSource = sessionVars; 
    gridView.DataBind(); 
} 

答えて

1

ブラウザ(またはブラウザタブ)を閉じて再起動すると、セッション状態は維持されません。 セッションクッキーは新しいブラウザウィンドウで使用できなくなり、新しいセッションが開始されます。 ASP.NETが同じIDを再び割り当てることは、単に共通点に過ぎません。

関連する問題