8,735
社区成员
发帖
与我相关
我的任务
分享
[EnableClientAccess()]
public class UserRegistrationService : DomainService
{
public const string DefaultRole = "messenger";
public CreateUserStatus CreateUser(RegistrationData user, string password)
{
if (user == null)
{
throw new ArgumentNullException("user");
}
if (!Roles.RoleExists(UserRegistrationService.DefaultRole))
{
Roles.CreateRole(UserRegistrationService.DefaultRole);
}
MembershipCreateStatus createStatus;
Membership.CreateUser(user.UserName, password, string.Empty, string.Empty, string.Empty, true, null, out createStatus);
if (createStatus != MembershipCreateStatus.Success)
{
return UserRegistrationService.ConvertStatus(createStatus);
}
Roles.AddUserToRole(user.UserName, UserRegistrationService.DefaultRole);
ProfileBase profile = ProfileBase.Create(user.UserName, true);
profile.SetPropertyValue("FriendlyName", user.FriendlyName);
profile.Save();
return CreateUserStatus.Success;
}
private static CreateUserStatus ConvertStatus(MembershipCreateStatus createStatus)
{
switch (createStatus)
{
case MembershipCreateStatus.Success: return CreateUserStatus.Success;
case MembershipCreateStatus.InvalidUserName: return CreateUserStatus.InvalidUserName;
case MembershipCreateStatus.InvalidPassword: return CreateUserStatus.InvalidPassword;
case MembershipCreateStatus.InvalidQuestion: return CreateUserStatus.InvalidQuestion;
case MembershipCreateStatus.InvalidAnswer: return CreateUserStatus.InvalidAnswer;
case MembershipCreateStatus.InvalidEmail: return CreateUserStatus.InvalidEmail;
case MembershipCreateStatus.DuplicateUserName: return CreateUserStatus.DuplicateUserName;
case MembershipCreateStatus.DuplicateEmail: return CreateUserStatus.DuplicateEmail;
default: return CreateUserStatus.Failure;
}
}
public enum CreateUserStatus
{
Success = 0,
InvalidUserName = 1,
InvalidPassword = 2,
InvalidQuestion = 3,
InvalidAnswer = 4,
InvalidEmail = 5,
DuplicateUserName = 6,
DuplicateEmail = 7,
Failure = 8,
}
}