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

时间:2016-04-30 01:36:11

标签: c# asp.net webforms master-pages asp.net-webpages

我正在尝试使用带有登录用户名的会话变量来更新标签顶部的主页面。但是,当我从登录页面导航时,标签重置为默认值。有人可以解释热,以保持在页面上。如果这种显示用户名的方法最好?

2 个答案:

答案 0 :(得分:1)

如果您使用实际的HttpContext.Current.Session状态变量来保存登录信息中的用户名,则可以执行@woodykiddy建议并拥有母版页{{1}代码隐藏中的方法将Page_Load()控件的Text属性设置为包含用户名的会话存储Label变量。

string

但是,在Label1.Text = (string)HttpContext.Current.Session[YOUR_STORED_USERNAME_SESSION_KEY]; 文件的.aspx标记中放置一小部分服务器端C#代码会更容易。这可以通过将C#代码包装在特殊标签中来完成,如下所示:

Site.Master

这样,每次呈现母版页的标记时,都会进行服务器端调用以查找存储的会话状态变量。

答案 1 :(得分:0)

假设您的母版页上有一个像<asp:Label runat="server" ID="Label1" />这样的标签控件。

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

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