会话变量

时间:2011-07-25 23:15:06

标签: c# asp.net session-variables

我在我的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并删除我的变量,我怎么能解决这个问题?

3 个答案:

答案 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