我目前有一个网站,存储变量在用户登录,从数据库。一个这样的变量(成功登录)是SiteSession.Current.IsLoggedIn = true
。会话登录没有注销按钮点击
当我单击注销按钮时,我的方法会告诉它将其设置为false
,然后继续执行Session.Clear()
和Session.Abandon()
。
到目前为止,我必须在做任何更改之前点击两次注销按钮。
我在我的Logout()
方法中用Response.Write(SiteSession.Current.IsLoggedIn);
进行了测试。
第一次点击并不显示任何内容,然后第二次点击显示false
。
有人能告诉我我在哪里;会出错吗?
/// <summary>
/// Logs the user out, and destroys the session
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lnkAccountLogout_Click(object sender, EventArgs e)
{
SiteSession.Current.IsLoggedIn = false;
SiteSession.Current.RollId = "-1";
Session.Clear();
Session.Abandon();
Response.Write(SiteSession.Current.IsLoggedIn);
}
〜登录基本上是相反的,虽然存储几个变量。
编辑:如果我在第一次点击后重新加载页面,则没有任何反应。
它可能与viewstate/postback有关。我有一段时间没有在ASP.Net工作,但我认为如果(!IsPostBack){code}可以工作 – 0xFF 2013-04-25 13:33:51
嘿..那/工作/每个说..不幸的是,它完全混淆了我的登录:/有了这个,它不会存储任何东西.. – TheGeekZn 2013-04-25 13:35:47
你必须在登录方法中做同样的事情。你应该阅读关于视图状态,它可以是相当困惑 – 0xFF 2013-04-25 13:37:02