注销和登录后的会话变量

时间:2012-08-08 15:49:00

标签: c# asp.net session

有些答案很接近但不是我遇到的问题。以下是我正在采取的解决问题的步骤:

  1. 登录我们的网站。 - 设置会话变量。
  2. 重定向到默认页面很好。 - 会话变量正确,因为数据显示正确。
  3. 退出网站。 - 正确重定向到登录页面。
  4. 再次登录。 - 再次设置会话变量。
  5. 重定向到默认页面。 - 会话变量为null。数据显示不正确。
  6. 以下是我在登录时将变量放入Session的方法。

    Session.Add("company", companyPrikey);
    

    以下是我在默认页面

    中引用Session的方法
    if (Session["company"] != null)
    

    即使我在第二次登录时看到Session.Add正在运行,但如果Session["company"]null运行Page_Load()时发现Session.SessionID,则会显示默认页面。

    我查看了Login.aspx?ReturnUrl=~/History.aspx ,每次登录时都是一样的。

    任何让用户远离网站的东西(导航到不同的网址,关闭标签,关闭IE)都可以解决问题并且可以再次正确登录。

    - 编辑 -

    重定向位于网址

    {{1}}

    登录完成后返回历史记录页面。

1 个答案:

答案 0 :(得分:1)

似乎在注销时可能没有正确删除会话。因此,空检查失败,并且在后续登录时没有为变量赋予新值。

如果您尚未注销,请在注销时尝试Session.Abandon()。这将在页面完成处理时关闭Session ,即在放弃代码后不直接重定向到登录页面。

更多信息:http://msdn.microsoft.com/en-us/library/ms524310%28VS.90%29.aspx