簡體   English   中英

會話和Page.IsPostBack

[英]Session and Page.IsPostBack

我在ASP.NET中有一個網站。 我在頁面加載中聲明一個會話來存儲用戶ID,默認情況下該會話為空。

當用戶單擊登錄時,將顯示登錄頁面,並且用戶登錄並且用戶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;
}

由於您的登錄頁面與您正在談論的頁面是一個單獨的頁面,因此當用戶登錄后被定向回到您的頁面時,它將不被視為回發。因此,每次用戶訪問該頁面時,他們的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;
}

嘗試這個:

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

問候

不知道您是否仍需要此功能,但是僅檢查會話是否為空也無濟於事,即

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM