【问题标题】:Session and Page.IsPostBack会话和页面.IsPostBack
【发布时间】:2011-04-23 15:03:00
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net session postback


    【解决方案1】:

    由于您的登录页面是与您正在谈论的页面不同的页面,因此当用户在登录后被引导回您的页面时,它不会被视为回发。因此,每次您的用户访问此页面时,他们的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;
    }
    

    【讨论】:

      【解决方案2】:

      试试这个:

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

      问候

      【讨论】:

        【解决方案3】:

        不知道您是否仍然需要这个,但仅检查 Session 是否为空是否无济于事,即

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-09-09
          • 1970-01-01
          • 2016-11-27
          • 1970-01-01
          • 2011-06-27
          • 1970-01-01
          • 2011-04-06
          相关资源
          最近更新 更多