用属性扩展umbraco成员

用属性扩展umbraco成员

问题描述:

我正在umbraco上开发网站,并且需要存储有关成员(cmsMember)的其他信息.我怎样才能做到这一点?有没有一种方法可以扩展umbraco成员而无需更改成员资格提供程序?

I am developing web site on umbraco and need to store additional information about member(cmsMember). How can I do that? Is there a way to extend umbraco member without changing membership provider?

我想做类似的事情

  var datatype = new DataTypeDefinition("varchar");
  var type = new PropertyType(datatype);
  var property = new Property(type);
  property.Value = myAdditionalInfo;
  member.Properties.Add(property);
  memberService.Save(member, false);

上方的代码现在会引发异常,且 Value不能为空消息.

Code above right now throws exception with Value cannot be null message.

可以(并且应该)在后台中为成员类型添加属性:

Adding properties to a Member type can (and should) be done in the backoffice:

然后设置/保存值应该是这样的(使用MemberService),尽管我不确定是否是当前的:-s:

And then setting/saving the values should be something like this (using MemberService), though I'm not exactly sure if it's current :-s :

// Get the member
var member = Member.GetCurrentMember();

// Check if there is a current member
if (member != null)
{
    // Update member properties
    member.getProperty("myPropertyAlias").Value = myAdditionalInfo;

    // Save the updated member
    member.Save(); 
}