簡體   English   中英

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()

它將返回當前成員為IPublishedContent,然后您可以使用與發布內容相同的方式訪問成員屬性,例如GetPropertyValue("propertyAlias")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM