我在我的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;
}
我的问题是,当用户进行了autenthicated时,会调用void session_start并删除我的变量,我怎么能解决这个问题?
答案 0 :(得分:3)
Session.Abandon()
会破坏会话并触发Session_OnEnd
事件。您应该在用户注销而不是登录时调用此方法。
你应该调用Session.Clear()
,它只是在登录时从会话对象中删除所有值(内容)。
这将解决您现在遇到的问题。
答案 1 :(得分:0)
您可以在Session_Start中再次设置变量之前检查变量是否已设置。
答案 2 :(得分:0)
易:
在Session_Start中:
if (Session["user"] != "")
// Do something else
else
// Set Session["user"] = "", etc