ASP.NET Session []参数不能从page_load()工作

时间:2015-01-17 13:31:56

标签: c# asp.net

我正在建立一个不错的ASP.NET站点,我在登录时将会话中的用户详细信息保存在这里:

 protected void Login_Click(object sender, EventArgs e)
 {
     //If details at the user/password textboxes are legit:
   Session["User"] = new User(LoginUserTB.Text, LoginPassTB.Text, null,  Class.UNDEF);
}

它工作得很好,例如,我有一个名为Welcome标签的标签,如果用户在会话中保存,则需要更改为包含用户名的问候语。我这样编程就可以了。它有效。

页面加载:

 if(Session["User"]!=null)
  WelcomeTag.Text = "Welcome, " + ((User)Session["User"]).Username + ".";

但是,由于某种原因,它在其中一个标签上无法正常工作。它是一个名为StatusDesc的母版页标签,它被要求包含服务器上的日期和用户名(如果有的话)。在页面上,我有以下代码:

if (Session["User"] != null)
{
  ((Label)Master.FindControl("StatusDesc")).Text = "Currently logged to: " +  ((User)Session["User"]).Username + ".<br>" + ((Label)Master.FindControl("StatusDesc")).Text;
}

以前工作过,我确定母版页组件名称 - 我没有在此期间改变它;但是,现在,即使我已经登录,它也不会显示用户名行 - 只显示日期行,即使会话中没有用户也会显示。

知道为什么会发生这样的事情?如果您需要我提供代码的其他部分,请询问。

非常感谢你!

1 个答案:

答案 0 :(得分:4)