1

編集

この問題は奇妙に消えたようです。私の環境には何かファンキーなものがあったに違いありません。この質問を閉じるために投票します。


ユーザーがログインすると、ログイン ページのコード ビハインドからの一連のデータでセッションを膨らませます。次に、ユーザーをアプリケーションの別のページにリダイレクトします。また、ユーザーのセッションが期限切れになったときに、認証チケットに基づいてセッションを再膨張させるセッション回復ロジックもいくつかあります。

起こっているように見えるのは、ログインページからの一連のデータでユーザーのセッションを膨らませてからリダイレクトし、リダイレクト先のページのリクエストにセッションがないように見えるため、アプリケーションには再び膨らませます。これがわかりません。Cookie を確認しましたが、セッション ID が変更されておらず、コードのどこにもセッション データがリセットされていません。これは ASP .NET の「機能」ですか? ASP .NET 4.0 を使用しています。

編集:

明確にするために:セッションは、ログインリクエスト中に(ログインボタンのクリックでも)膨張します。次のリクエストでは、セッションにデータが取り込まれているようには見えないため、最終的にセッションを再拡張する必要があります。その後、ユーザーが行うリクエストはすべて、セッションが「固定」されているように見え、後続のリクエストに対して適切に膨らんだセッションがあります。

4

1 に答える 1

1

質問に回答するためのSessionStateデータは、ログイン/ログアウトとは無関係です。

からデータが「消える」理由はいくつかありますSessionState

  • Web ファームで使用InProc SessionStateしている場合、ユーザーはファーム内の別のマシンによって後続の要求が処理される場合があります。
  • SessionStateいっぱいになりすぎるとクリアできます(キャッシュなど)。
  • カスタム を使用している場合SessionStateStoreProvider、適切に保存/取得されていない可能性がありSessionStateます。
于 2011-06-09T13:09:20.833 に答える