2010-04-29 63 views
3

我想這將是非常簡單的,但..會員獲取屬性的一把umbraco編程

我們已經創建一個用戶,並具有各種性能的 成員類型當我們試圖通過成員對象訪問屬性我們什麼都沒有。

//成員m是當前用戶

例如, Property s = m.getProperty(「PreferdUserName」); 是空

m.getProperties具有零的計數..

有我們錯過了一些東西明顯?

回答

0

會有拼寫錯誤嗎?

「PreferdUserName」可能希望成爲「PreferredUserName」。

除此之外它看起來是正確的。

+0

我已經檢查過一個以及:) – AyKarsi 2010-05-13 07:47:28

0

最後,我採取了將成員屬性存儲在一個單獨的數據庫表中,這無論如何都更接近我所需要的。 我認爲它與我使用自定義msbuild任務從外部umbraco創建memberType的方式有關。

0

你可以創建自己的類並擴展ProfileBase。下面的代碼將顯示您在Umbraco中創建的屬性。例如umbraco別名是'first_name'。

[SettingsAllowAnonymous(false)] 
public string FirstName 
{ 
    get 
    { 
     var o = base.GetPropertyValue("first_name"); 
     if (o == DBNull.Value) 
     { 
      return string.Empty; 
     } 
     return (string)o; 
    } 
    set 
    { 
     base.SetPropertyValue("first_name", value); 
    } 
} 

然後你就可以訪問屬性是這樣的...

string firstName = ((MemberProfile)HttpContext.Current.Profile).FirstName; 

有關如何處理這件事了更多信息可以在這裏看到:

http://www.aaron-powell.com/posts/2010-04-07-umbraco-members-profiles.html

0

這可能有助於其他人,如果您需要獲得Umbraco中當前用戶以外的其他人的成員詳細信息並擁有用戶名。

var TheirUsername = "s12345"; 

Member MemberFind = new Member(Convert.ToInt32(Membership.GetUser(***TheirUsername***).ProviderUserKey)); 

//now use this value 

var NameOfUser = MemberFind.Text; 

var EmailAddress = MemberFind.Email;