在Umbraco中以编程方式创建新成员

Sea*_*ean 6 c# model-view-controller umbraco

我正在尝试以编程方式为我的Umbraco网站创建一个新成员,但我不确定我是否正确地执行此操作.

我的代码看起来像这样:

 MemberType demoMemberType = new MemberType(1040); //id of membertype ‘demo’
 Member newMember = Member.MakeNew(newEmployee.FirstName + " " + newEmployee.LastName, demoMemberType, new umbraco.BusinessLogic.User(0));

 newMember.Email = "test@testmail.com";
 newMember.Password = "password";
 newMember.LoginName = "Test";
 newMember.getProperty("firstName").Value = "test";

 newMember.Save();
Run Code Online (Sandbox Code Playgroud)

但是当我运行我的代码时,我看不到任何出现在我的Umbraco中的东西.有人可以告诉我我做错了什么吗?

Fra*_*yah 11

如果您使用的是umbraco 7,最好使用会员服务.以下是您可以采用的简单方法来实现此目的.

public int RegisterMember(string memberName, string emailAddress, string memberPassword, string memberTypeAlias, string memberGroupName)
{
        int umbracoMemberId = -1;

        if (!MemberExists(emailAddress))
        {
            IMember newMember = ApplicationContext.Current.Services.MemberService.CreateMember(emailAddress, emailAddress, memberName, memberTypeAlias);

            try
            {
                ApplicationContext.Current.Services.MemberService.Save(newMember);
                ApplicationContext.Current.Services.MemberService.SavePassword(newMember, memberPassword);
                ApplicationContext.Current.Services.MemberService.AssignRole(newMember.Id, memberGroupName);
                umbracoMemberId = newMember.Id;
            }
            catch (Exception ex)
            {
                throw new Exception("Unable to create new member " + ex.Message);
            }
        }

        return umbracoMemberId;
}


public bool MemberExists(string emailAddress)
{
        return (ApplicationContext.Current.Services.MemberService.GetByEmail(emailAddress) != null);
}
Run Code Online (Sandbox Code Playgroud)


Leo*_*eon 0

根据 Umbraco 版本,提供的代码示例已过时。

Umbraco 4 将 Umbraco 成员资格模型更改为使用 ASP.NET 成员资格提供程序模型,这意味着 ASP.NET 开箱即用提供的所有抽象类都能够访问 Umbraco 成员。MSDN(和其他网站)上有大量关于使用 ASP.NET 会员资格的好资源,建议的起点是这里。

文章:

http://our.umbraco.org/wiki/how-tos/membership-providers

http://msdn.microsoft.com/en-us/library/tw292whz.aspx