登录后是否重置ASP.NET会话



编辑

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


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

似乎正在发生的事情是,我用登录页面上的一堆数据来填充用户的会话,然后重定向它们,而我重定向到的页面的请求似乎没有会话,所以应用程序必须重新填充它。我不明白-我看了cookie,会话ID没有改变,并且我不会在代码中的任何位置重置会话数据。这是ASP.NET的"feauture"吗?我使用的是ASP.NET 4.0。

编辑:

需要澄清的是:在登录请求期间(甚至点击登录按钮),会话被夸大了。在下一个请求中,会话似乎不再被填充,所以我最终不得不重新填充会话。用户在那之后提出的任何请求,会话似乎都会"卡住",并且我有一个适当膨胀的会话来处理后续请求。

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

数据可能从SessionState"消失"的原因有几个。

  • 如果您在web服务器场上使用InProc SessionState,则服务器场中的其他计算机可能会为用户提供后续请求
  • 如果SessionState太满(就像缓存一样),它可以清除
  • 如果使用自定义SessionStateStoreProvider,则可能无法正确保存/检索SessionState

相关内容

  • 没有找到相关文章

最新更新