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)
根据 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