ASP.net:重定向后向后登录页面时,会话不起作用

时间:2013-06-19 08:48:44

标签: asp.net

我正在研究我在asp.net中构建网站的项目。使用Session登录页面时遇到问题。 我的登录页面将检查会话以了解用户之前是否登录。如果他们没有,则会出现登录表单,允​​许他们登录。否则,将显示注销按钮。

一切正常,登录后,页面将重定向到default.aspx并保存会话,我知道因为用户名出现在默认页面中。但是在默认页面上,如果我按下浏览器上的后退按钮返回登录页面,则会出现登录表单,其中应该有注销按钮。然后,如果我在其他选项卡中按f5或打开登录页面,则可以使用注销按钮。

有人可以帮我这个! 谢谢,抱歉我的英语不好! :)

3 个答案:

答案 0 :(得分:0)

当向后导航时,默认情况下,页面状态将与您登录前一样。因此,如果没有刷新以使该页面检查会话状态,则可能没有太多可以做的。

答案 1 :(得分:0)

用户可以看到浏览器缓存中的页面。这就是为什么你看到登录botton而不是注销。您可以禁用页面的缓存,但是您将有更多的服务器负载。我注意到失去会话。

使评论中的文件更完整:

protected void Page_Init(object sender, EventArgs e) 
{
  Response.Cache.SetCacheability(HttpCacheability.NoCache);
  Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
  Response.Cache.SetNoStore(); 
}

将阻止页面在浏览器上缓存。

答案 2 :(得分:0)

在检查用户是否登录的位置(您确定是否显示“退出”按钮)的位置设置断点,然后在登录后导航回来。我非常确定该页面是从缓存中加载的,因此页面看起来与用户登录之前完全一样。您可能需要一个javascript解决方案。

有人在这里发布了同样的问题,他们尝试了一些解决方案http://forums.asp.net/t/1118630.aspx