0

有些答案很接近,但不是我遇到的问题。这是我正在采取的导致问题的步骤:

  1. 登录我们的网站。-- 会话变量已设置。
  2. 重定向到默认页面很好。-- 会话变量正确,因为数据显示正确。
  3. 登出网站。-- 正确重定向到登录页面。
  4. 再次登录。-- 再次设置会话变量。
  5. 重定向到默认页面发生。-- 会话变量为空。数据显示不正确。

这是我在登录期间将变量放入 Session 的方式。

Session.Add("company", companyPrikey);

这是我在默认页面中引用 Session 的方式

if (Session["company"] != null)

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

我看过了Session.SessionID,每次登录时它们都是一样的。

任何让用户离开网站的事情(导航到不同的 URL、关闭选项卡、关闭 IE)都可以解决问题,他们可以再次正确登录。

- 编辑 -

重定向只是在 URL

Login.aspx?ReturnUrl=~/History.aspx

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

4

1 回答 1

1

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

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

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

于 2012-08-09T14:23:56.260 回答