Umbraco:更改现有成员的MemberType

时间:2014-02-25 18:37:17

标签: c# umbraco

在我的Umbraco配置中,我有一个使用一个关联的MemberType创建的成员,但管理员需要能够将它们移动到不同的MemberType而不会丢失用户的凭据,因此只需创建一个新成员即可 - 就我而言可以告诉 - 可能不适用于此。

我可以这样做:

Member ourMember = Member.GetAllAsList().Where(x => x.Id == memberId).First();
ourMember.ContentType = umbraco.cms.businesslogic.ContentType.GetByAlias(newMemberType);
ourMember.Save();

但是,保存不会更改ContentType,旧成员ContentType的属性会在成员存在时保留。据推测,有一些不同的方式来进行这种改变?否则有没有办法将MembershipUser转移到新成员而不会丢失登录凭据?

我意识到我可能正在使用ContentService,但我找不到有关如何做到这一点的有用信息,并且至少有一些关于旧方法的一些

此外,我不禁感到这种通过身份识别获得会员的方式是一个糟糕的想法,但我看不出更直接的一个。

1 个答案:

答案 0 :(得分:1)

Umbraco的成员资格并不尽如人意。我非常确定您无法更改成员类型,因为您无法更改某些内容的文档类型。

我认为您必须拥有单一的标准会员类型,然后通过会员组(角色)管理用户类型。如果您的不同类型的用户需要拥有不同的数据,那么我建议您创建所有这些字段的联合并按选项卡分隔它们,或者将这些数据存储在外部数据库表中。此外,每个标准.NET MembershipProvider都必须与web.config中的成员类型绑定,来自重新收集。

内容服务仅供内容使用。 Darren Ferguson最近重新编写了Membership API,因此您需要检查它的版本并将其与您的版本进行比较,以查看最佳使用的API。我不认为新的API会允许这样做。

我可能错了,但我认为新会员(id)将返回带有该ID的会员。

最后,您可以在our.umbraco.com上获得更好的响应,而不是StackOverflow。

祝你好运!