0

いくつかの答えは近いですが、私が抱えている問題ではありません。問題を引き起こすために私が取っている手順は次のとおりです。

  1. 当サイトにログインします。-- セッション変数が設定されます。
  2. デフォルトのページへのリダイレクトは正常に行われます。-- データが正しく表示されるため、セッション変数は正しくなります。
  3. サイトからログアウトします。-- ログイン ページに正しくリダイレ​​クトされました。
  4. 再度ログインしてください。-- セッション変数が再度設定されます。
  5. デフォルトページへのリダイレクトが発生します。-- セッション変数が null です。データが正しく表示されません。

ログイン中に変数をセッションに入れる方法は次のとおりです。

Session.Add("company", companyPrikey);

デフォルトページでセッションを参照する方法は次のとおりです

if (Session["company"] != null)

2回目のログイン中に実行されていることがわかりますが、実行Session.Add中の場合はデフォルトのページです。Session["company"]nullPage_Load()

私は見てきましたがSession.SessionID、それらは各ログイン中に同じです。

ユーザーをサイトから遠ざける (別の URL に移動する、タブを閉じる、IE を閉じる) と、問題が修正され、ユーザーは再び正しくログインできるようになります。

- 編集 -

リダイレクトは URL だけにある

Login.aspx?ReturnUrl=~/History.aspx

ログインが完了し、履歴ページに戻ります。

4

1 に答える 1

1

ログアウト時にセッションが正しく削除されていないようです。したがって、null チェックは失敗し、その後のログインで変数に新しい値が与えられません。

Session.Abandon()まだログアウトしていない場合は、ログアウトしてみてください。これにより、ページの処理が終了したときにセッションが閉じられます。つまり、Abandon コードの直後にログイン ページにリダイレクトしないでください。

詳細: http://msdn.microsoft.com/en-us/library/ms524310%28VS.90%29.aspx

于 2012-08-09T14:23:56.260 に答える