1

编辑

这个问题似乎奇怪地消失了。我的环境一定有什么奇怪的地方。我投票结束这个问题。


当用户登录时,我使用来自登录页面代码隐藏的一堆数据来扩充会话。然后我将用户重定向到应用程序中的不同页面。我还有一些会话恢复逻辑,当用户会话过期时,它会根据身份验证票重新膨胀会话。

似乎正在发生的事情是,我用登录页面中的一堆数据膨胀了用户的会话,然后将它们重定向,而我将它们重定向到的页面的请求似乎没有会话,所以应用程序有重新充气。我不明白这一点 - 我查看了 cookie 并且会话 ID 没有更改,并且我没有在代码中的任何位置重置会话数据。这是 ASP .NET 的“功能”吗?我正在使用 ASP .NET 4.0。

编辑:

澄清一下:在登录请求期间会话被夸大了(甚至在登录按钮的点击上)。在下一个请求期间,似乎不再填充会话,因此我最终不得不重新填充会话。用户在此之后提出的任何请求,会话似乎都“坚持”并且我为后续请求提供了适当膨胀的会话。

4

1 回答 1

1

回答您的问题SessionState数据独立于登录/注销。

数据可能从SessionState.

  • 如果您InProc SessionState在网络场上使用,则用户可能会要求场中的另一台机器为用户提供后续请求。
  • SessionState如果太满可以清除(如缓存)。
  • 如果您使用的是 custom SessionStateStoreProvider,它可能无法正确保存/检索SessionState
于 2011-06-09T13:09:20.833 回答