Umbraco - 访问自定义成员属性

Umbraco - Accessing custom member properties

我目前有这段代码用于测试目的,它有效:

@if (Umbraco.MemberIsLoggedOn())
{
    var user = System.Web.Security.Membership.GetUser();


    if (user != null)
    {
        var m = ApplicationContext.Services.MemberService.GetByUsername(user.UserName);
        var testProperty = "";

        if (m.HasProperty("testProperty") && m.GetValue("testProperty") != null)
        {
            testProperty = m.GetValue("testProperty").ToString();
        }

        <p>User: @user.UserName is logged in</p>
        <p>Test property: @testProperty</p>
    }
}

我的问题是:这是最简单的方法吗?似乎没有必要使用 MemberService 获取另一种类型的用户(IMember 而不是 MembershipUser)只是为了访问自定义属性。但是我在 MembershipUser 上看不到任何访问自定义属性的方法。我只是错过了什么吗?或者这就是你的本意?

编辑: 根据下面@Tim 的回答,下面的代码要好得多:

@if (Umbraco.MemberIsLoggedOn())
{
    var currentUser = Members.GetCurrentMember();

    if (currentUser != null)
    {
        var testProperty = currentUser.GetPropertyValue<string>("testProperty");
        <p>User: @currentUser.Name is logged in</p>
        <p>Test property: @testProperty</p>
    }
}

理论上你应该能够做到:

@Members.GetCurrentMember()

当前成员应该return为IPublishedContent,然后您可以像访问已发布内容一样访问成员属性,例如GetPropertyValue("propertyAlias").