以编程方式从Umbraco获取会员的房产

时间:2010-04-29 20:00:14

标签: umbraco

我认为这很简单但是......

我们创建了一个具有各种属性的用户和成员类型 当我们尝试通过成员对象访问属性时,我们什么都没得到。

//会员m是当前用户

例如。 Property s = m.getProperty(“PreferdUserName”); 为空

m.getProperties的计数为零..

我们错过了一些明显的东西吗?

5 个答案:

答案 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