会话变量
问题描述:
我定义我的会话变量,在我的Global.asax
称为user
这样会话变量
protected void Session_Start(object sender, EventArgs e)
{
Session["idMap"] = "";
Session["user"] = "";
}
我也有在我设置会话变量的值中的事件asp:Login
loggedIn
protected void lgnMapZone_LoggedIn(object sender, EventArgs e)
{
Session.Abandon();
Session["user"] = lgnMapZone.UserName;
}
我的问题是,当它的用户非特定的,它被称为无效session_start和擦除我的变量,我该如何解决?
答
Session.Abandon()
破坏了会议,并触发Session_OnEnd
事件。当用户在不注销,而不是日志的你应该调用此方法。
你或许应该叫Session.Clear()
在登录时刚刚从会话对象删除所有值(内容)。
这将解决问题你现在拥有。
答
在Session_Start中再次设置变量之前,可以检查该变量是否已设置。
答
简单:
里面在session_start:
if (Session["user"] != "")
// Do something else
else
// Set Session["user"] = "", etc
打我3秒。 – Chains
对不起,下次我会投票给你:) –