我正在建立一个不错的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;
}
以前工作过,我确定母版页组件名称 - 我没有在此期间改变它;但是,现在,即使我已经登录,它也不会显示用户名行 - 只显示日期行,即使会话中没有用户也会显示。
知道为什么会发生这样的事情?如果您需要我提供代码的其他部分,请询问。
非常感谢你!
答案 0 :(得分:4)