从一个内容页面设置主页面内容

时间:2014-11-11 12:55:29

标签: c# asp.net master-pages membership-provider

我有我的母版页。我需要从内容页面分配登录的用户。 我使用着陆页中的以下代码

 var currentUser = Membership.GetUser();
 Label lblLoggedUser = (Label)Master.FindControl("lblLoggedUser");
 lblLoggedUser.Text = currentUser.UserName;

但是当我重定向到另一个页面时它会消失。 如何从一个页面设置母版页内容?

PS-我正在使用会员提供商登录。

1 个答案:

答案 0 :(得分:1)

我相信您所说的是,当用户访问目标网页时,您列出的代码会执行并将用户名设置为母版页。但是当他们离开登录页面时,用户名变为空白。您正尝试将该值一次设置到登录页面的母版页中,并将其保留用于后续的pagas。

更好的方法是让母版页设置该值。让母版页负责母版页控件可以使各个页面只关注它们的逻辑。

将代码移动到母版页的页面加载或PreRender事件中。

    void Page_PreRender(object sender, EventArgs e)
    {
        var currentUser = System.Web.Security.Membership.GetUser();
        if (currentUser != null && currentUser.IsOnline)
            this.lblLoggedUser.Text = currentUser.UserName;
        else
            this.lblLoggedUser.Text = "not authenticated";

    }