我认为这很简单但是......
我们创建了一个具有各种属性的用户和成员类型 当我们尝试通过成员对象访问属性时,我们什么都没得到。
//会员m是当前用户
例如。 Property s = m.getProperty(“PreferdUserName”); 为空
m.getProperties的计数为零..
我们错过了一些明显的东西吗?答案 0 :(得分:0)
是否会出现拼写错误?
“PreferdUserName”可能想成为“PreferredUserName”。
除此之外,它看起来是正确的。
答案 1 :(得分:0)
最后,我将成员属性存储在一个单独的数据库表中,无论如何它都更接近我需要的数据库。 我认为这与我使用自定义msbuild任务从umbraco外部创建memberType的方式有关。
答案 2 :(得分: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
答案 3 :(得分: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;
答案 4 :(得分:-1)
尝试
Property s = m.getProperty("PreferdUserName").value;
如果仍然不起作用,请查看关于会员资产的这篇精彩帖子
http://legacy.aaron-powell.com/blog/july-2009/umbraco-member-profiles.aspx