2011-07-25 160 views
0

我定義我的會話變量,在我的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和擦除我的變量,我該如何解決?

回答

3

Session.Abandon()破壞了會議,並觸發Session_OnEnd事件。當用戶在不註銷,而不是日誌的你應該調用此方法。

你或許應該叫Session.Clear()在登錄時剛剛從會話對象刪除所有值(內容)。

這將解決問題你現在擁有。

+0

打我3秒。 – Chains

+0

對不起,下次我會投票給你:) –

0

在Session_Start中再次設置變量之前,可以檢查該變量是否已設置。

0

簡單:

裏面在session_start:

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