我想這將是非常簡單的,但..會員獲取屬性的一把umbraco編程
我們已經創建一個用戶,並具有各種性能的 成員類型當我們試圖通過成員對象訪問屬性我們什麼都沒有。
//成員m是當前用戶
例如, Property s = m.getProperty(「PreferdUserName」); 是空
m.getProperties具有零的計數..
有我們錯過了一些東西明顯?
我想這將是非常簡單的,但..會員獲取屬性的一把umbraco編程
我們已經創建一個用戶,並具有各種性能的 成員類型當我們試圖通過成員對象訪問屬性我們什麼都沒有。
//成員m是當前用戶
例如, Property s = m.getProperty(「PreferdUserName」); 是空
m.getProperties具有零的計數..
有我們錯過了一些東西明顯?
嘗試
Property s = m.getProperty("PreferdUserName").value;
如果仍然不能正常工作,那麼看看這個偉大的職位有關成員屬性
http://legacy.aaron-powell.com/blog/july-2009/umbraco-member-profiles.aspx
會有拼寫錯誤嗎?
「PreferdUserName」可能希望成爲「PreferredUserName」。
除此之外它看起來是正確的。
我已經檢查過一個以及:) – AyKarsi 2010-05-13 07:47:28
最後,我採取了將成員屬性存儲在一個單獨的數據庫表中,這無論如何都更接近我所需要的。 我認爲它與我使用自定義msbuild任務從外部umbraco創建memberType的方式有關。
你可以創建自己的類並擴展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
這可能有助於其他人,如果您需要獲得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;
我不認爲這是有效了(umbraco 4.5及以上),鏈接已損壞 – Mario 2011-12-12 17:14:19