C# 如何在母版页上创建用户名

C# 如何在母版页上创建用户名,c#,asp.net,webforms,master-pages,asp.net-webpages,C#,Asp.net,Webforms,Master Pages,Asp.net Webpages,我正在尝试使用一个会话变量和登录名中的用户名来更新主页顶部的标签。但是,当我从登录页面导航时,标签将重置为默认值。有人能解释一下吗?把它放在书页上。如果这种显示用户名的方法是最好的 假设母版页上有这样的标签控件 因此,要显示用户名,可以使用User.Identity.Name属性将其值分配给label控件。请注意,如果用户未经身份验证,将返回空字符串。另外,一个好的做法是应用isauthoritated检查,并可能为匿名用户显示不同的标签文本 protected void Page_Load(o

我正在尝试使用一个会话变量和登录名中的用户名来更新主页顶部的标签。但是,当我从登录页面导航时,标签将重置为默认值。有人能解释一下吗?把它放在书页上。如果这种显示用户名的方法是最好的

假设母版页上有这样的标签控件

因此,要显示用户名,可以使用
User.Identity.Name
属性将其值分配给label控件。请注意,如果用户未经身份验证,将返回空字符串。另外,一个好的做法是应用
isauthoritated
检查,并可能为匿名用户显示不同的标签文本

protected void Page_Load(object sender, EventArgs e)
{
    if (User.Identity.IsAuthenticated)
    {
        Label1.Text = User.Identity.Name; // username
    }
    else
    {
        Label1.Text = "Guest User";
    }
}

如果您使用的是实际的
HttpContext.Current.Session
state变量来保存登录时的用户名,那么您可以按照@woodykiddy的建议操作,并加载母版页的
page_()
隐藏代码中的方法将
标签
控件的
文本
属性设置为包含用户名的会话存储的
字符串
变量。
Label1.Text = (string)HttpContext.Current.Session[YOUR_STORED_USERNAME_SESSION_KEY];

这样,每次呈现母版页的标记时都会执行服务器端调用以查找存储的会话状态变量,并且始终是最新的。

您可以共享正在使用的代码吗?可能有很多原因导致标签无法持久。
<%:HttpContext.Current.Session[YOUR_STORED_USERNAME_SESSION_KEY]%>