2013-12-13 174 views
0

我有一个网站,并在登录页面Page_Load,清除Session。我已经试过:ASP.net会话清除

Session.Clear() 
Session.RemoveAll() 
Session.Abandon() 

然后,一旦登录页面填写并点击提交按钮,它然后将两个值:

Session.Add("ref", ref) 
Session.Add("date", datetxt) 

在接下来的页面中,我有一个,如果声明成立:

If Session.Item("ref") = Nothing Then 
    Response.Redirect("Login.aspx") 
End If 

然而,当它只是不断重新导向到登录,而不必加载,即使我已经加入会话“参考”价值。

你能帮忙吗?

+0

我尝试了四个空格缩进代码,但它没有奏效,对不起。 – Dan

+3

是否在页面加载中添加了ispostback检查。 – Raghubar

+0

您是否试图在允许用户访问给定页面之前验证用户已经登录? –

回答

0

修改您的OnLoad代码只能清除会话时登录页面被称为首次,回发:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not IsPostback Then 
     Session.RemoveAll() 
     Session.Clear() 
     Session.Abandon() 
    End If 
End Sub 

你被抛弃每一个会话,包括一个你只是写了登录数据。当当前页面被卸载时(已完成处理),放弃发生。

+0

它的工作。感谢您的解释!我认为Session.Abandon()会在加载页面的时候发生。现在它工作得很好。 – Dan

0

对您的Login.aspx页面代码稍作修改,并清除ispostback方面的所有会话变量。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not IsPostback Then 
     Session.RemoveAll() 
     Session.Clear() 
     Session.Abandon() 
    End If 
    End Sub