繁体   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