2011-04-23 31 views
0

我在ASP.NET中有一個網站。我在頁面加載中聲明一個會話來存儲用戶ID,默認情況下它將爲空。Session and Page.IsPostBack

當用戶點擊登錄時,登錄頁面出現,用戶登錄並且用戶ID存儲在會話中。

當我回到索引頁時,它消失了。

這裏是我的代碼:

if (!Page.IsPostBack) 
{ 
    Session["UserID"] = ""; 
} 

if (Session["UserID"] == "") 
{ 
    HP_User.Text = "New User"; 
    HP_Login.Text = "login"; 
} 
else 
{ 
    HP_User.Text = "welcome ." + Session["UserID"].ToString() ; 
    HP_Out.Visible = true; 
    HP_Login.Visible = false; 
} 

回答

0

由於您的登錄頁面是由你所談論的,它不會被認爲是當在用戶直接返回到您的網頁投遞的頁面單獨頁面登錄。因此,每當用戶訪問此頁面時,他們的Session["UserID"]將被重新設置爲""。儘量只:

if (!String.IsNullOrEmpty(Session["UserID"])) 
{ 
    HP_User.Text = "New User"; 
    HP_Login.Text = "login"; 
} 
else 
{ 
    HP_User.Text = "welcome ." + Session["UserID"].ToString() ; 
    HP_Out.Visible = true; 
    HP_Login.Visible = false; 
} 
0

試試這個:

if (!Page.IsPostBack) 
{ 
    Session["UserID"] = ""; 

if (Session["UserID"] == "") 
{ 
    HP_User.Text = "New User"; 
    HP_Login.Text = "login"; 
} 
else 
{ 
    HP_User.Text = "welcome ." + Session["UserID"].ToString() ; 
    HP_Out.Visible = true; 
    HP_Login.Visible = false; 
} 
} 

問候

0

不知道如果你仍然需要這個或沒有,但它會幫助不只是檢查會議是空的或不是,即

if (!Page.IsPostBack) 
{  
if (String.IsNullOrEmpty(Session["UserID"])) 
{ 
Session["UserID"] = ""; 
} 
}