会话变量超时概率

时间:2009-12-07 06:33:09

标签: c# asp.net

我在登录时获得会话变量中的用户名,在我登录后我检查了会话对象(用户名)是否为空以获取我的页面中显示的用户名。如果会话对象为空我将制作页面再次重定向到登录页面。但在某些时候,如果我在登录后点击我的任何页面中的任何链接,它会将我重定向到登录页面,但我没有点击退出按钮。为什么它使会话为空。 wat必须被放置来执行我访问的页面的会话变量,而不是我点击注销它不应该被清除/ null- asp.net

3 个答案:

答案 0 :(得分:1)

会话状态丢失通常来自:

  1. 会话超时
  2. 由于不活动(20分钟)或每日强制回收而导致AppPool回收
  3. 尝试使用具有InProc会话状态的Web园或Web场
  4. 话虽如此,我建议使用ASP.NET Membership系统而不是会话状态来记录用户登录数据。要么就是切换到cookie并完全摆脱会话。

答案 1 :(得分:0)

听起来你的会话已超时。您可以在web.config中增加它 - 例如

<authentication mode="Forms">
   <forms loginUrl="xxxx" timeout="60"/>
</authentication>

答案 2 :(得分:0)

会话可能超时,所有会话变量都会丢失。所以请检查是否是这种情况。

http://msdn.microsoft.com/en-us/library/ms972429.aspx