会话变量

问题描述:

我定义我的会话变量,在我的Global.asax称为user这样会话变量

protected void Session_Start(object sender, EventArgs e) 
    { 
     Session["idMap"] = ""; 
     Session["user"] = ""; 
    } 

我也有在我设置会话变量的值中的事件asp:LoginloggedIn

protected void lgnMapZone_LoggedIn(object sender, EventArgs e) 
    { 
     Session.Abandon(); 
     Session["user"] = lgnMapZone.UserName; 
    } 

我的问题是,当它的用户非特定的,它被称为无效session_start和擦除我的变量,我该如何解决?

Session.Abandon()破坏了会议,并触发Session_OnEnd事件。当用户在不注销,而不是日志的你应该调用此方法。

你或许应该叫Session.Clear()在登录时刚刚从会话对象删除所有值(内容)。

这将解决问题你现在拥有。

+0

打我3秒。 – Chains

+0

对不起,下次我会投票给你:) –

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

简单:

里面在session_start:

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