会话变量

本文关键字:变量 会话 | 更新日期: 2023-09-27 18:03:22

我在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;
    }

我的问题是,当用户它的身份验证,void session_start它被调用和擦除我的变量,我怎么能解决这个??

会话变量

Session.Abandon()销毁会话,触发Session_OnEnd事件。当用户注销而不是登录时,应该调用这个方法。

你可能应该调用Session.Clear(),它只是在登录时从会话对象中删除所有值(内容)。

这将解决您现在遇到的问题

您可以在Session_Start中再次设置变量之前检查变量是否已设置。

Easy:

在Session_Start

:

if (Session["user"] != "")
    // Do something else
else
    // Set Session["user"] = "", etc