以编程方式从Umbraco中的成员获取属性
我以为这会很简单,但是 我们已经创建了一个用户和一个具有各种属性的成员类型 当我们试图通过成员对象访问属性时,我们一无所获 //成员m是当前用户 例如。 Property s=m.getProperty(“PreferdUserName”); 是空的 m、 getProperties的计数为零以编程方式从Umbraco中的成员获取属性,umbraco,Umbraco,我以为这会很简单,但是 我们已经创建了一个用户和一个具有各种属性的成员类型 当我们试图通过成员对象访问属性时,我们一无所获 //成员m是当前用户 例如。 Property s=m.getProperty(“PreferdUserName”); 是空的 m、 getProperties的计数为零 我们错过了什么明显的东西吗 会不会有拼写错误 “PreferredUserName”可能希望成为“PreferredUserName” 除此之外,它看起来是正确的。最后,我求助于将成员属性存储在一个单独的
我们错过了什么明显的东西吗 会不会有拼写错误 “PreferredUserName”可能希望成为“PreferredUserName”
除此之外,它看起来是正确的。最后,我求助于将成员属性存储在一个单独的db表中,这无论如何更接近于我所需要的。 我猜想这与我使用自定义msbuild任务从umbraco外部创建memberType的方式有关。试试看
Property s = m.getProperty("PreferdUserName").value;
如果这仍然不起作用,那么看看这篇关于成员属性的文章
您可以创建自己的类并扩展ProfileBase。下面的代码将公开您在Umbraco中创建的属性。e、 g.翁布拉科别名为“名字”
[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;
有关如何设置这一切的更多信息,请参见此处:
如果您需要获取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及以上),链接断了