使用Web窗体使用自定义属性更新IdentityUser后。如何显示新的自定义属性

时间:2015-10-06 17:36:28

标签: c# asp.net asp.net-identity

在关注此页面(http://www.itorian.com/2013/11/customize-users-profile-in-aspnet.html)之后,我能够毫无问题地向我的身份用户添加自定义属性。我遇到的问题是,之后我在网上找到的所有内容都涉及在MVC项目中显示自定义属性,但我的项目是2015 ASP.NET Web Forms应用程序。在母版页中,有一段代码显示用户名:

<li><a runat="server" href="~/Account/Manage" title="Manage your account">Hello, <%: Context.User.Identity.GetUserName()  %> !</a>

我在身份资料中创建的自定义字段是FirstName和LastName。我希望能够像在上面的代码中一样在主页面中显示它们,而是显示John Doe而不是JD_whateverLoginNameChosen。我只是无法弄清楚如何正确访问它。谢谢您的帮助。

更新: 我最终通过进入site.master页面的代码而不是尝试从aspx端执行此操作来完成此操作。我还必须将链接从HTML链接更改为ASP HyperLink。以下是我用来做的代码:

        protected void Page_Load(object sender, EventArgs e)
    {
        var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
        var currentUser = manager.FindById(Context.User.Identity.GetUserId());

        HyperLink h = ((HyperLink)this.loginViewMaster.FindControl("ManageLink"));
        if(currentUser != null)
        {
            h.Text = "Hello, " + currentUser.FirstName + " " + currentUser.LastName;


        }


    }

1 个答案:

答案 0 :(得分:2)

我最终通过进入site.master页面后面的代码来完成此操作,而不是尝试从aspx端执行此操作。我还必须将链接从HTML链接更改为ASP HyperLink。以下是我用来做的代码:

        protected void Page_Load(object sender, EventArgs e)
{
    var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
    var currentUser = manager.FindById(Context.User.Identity.GetUserId());

    HyperLink h = ((HyperLink)this.loginViewMaster.FindControl("ManageLink"));
    if(currentUser != null)
    {
        h.Text = "Hello, " + currentUser.FirstName + " " + currentUser.LastName;


    }


}