我正在研究我在asp.net中构建网站的项目。使用Session登录页面时遇到问题。 我的登录页面将检查会话以了解用户之前是否登录。如果他们没有,则会出现登录表单,允许他们登录。否则,将显示注销按钮。
一切正常,登录后,页面将重定向到default.aspx并保存会话,我知道因为用户名出现在默认页面中。但是在默认页面上,如果我按下浏览器上的后退按钮返回登录页面,则会出现登录表单,其中应该有注销按钮。然后,如果我在其他选项卡中按f5或打开登录页面,则可以使用注销按钮。
有人可以帮我这个! 谢谢,抱歉我的英语不好! :)
答案 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