public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
 {
     ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true);
     OnValidatingPassword(args);
     if (args.Cancel) {
         status = MembershipCreateStatus.InvalidPassword;
         return null;
     }
     if (RequiresUniqueEmail && !string.IsNullOrEmpty(GetUserNameByEmail(email))) {
         status = MembershipCreateStatus.DuplicateEmail;
         return null;
     }
     MembershipUser user = GetUser(username, true);
     if (user != null) {
         status = MembershipCreateStatus.DuplicateUserName;
         return null;
     }
     UserData newUser;
     using (UserServiceClient svc = new UserServiceClient()) {
         UserData dataObject = new UserData {
             Name = email,
             PasswordHash = UserData.GetHashPassword(password),
             Email = email
         };
         newUser = svc.UserRegister(dataObject);
     }
     if (newUser.ActEnum == (int)eAct.unApproved) {
         status = MembershipCreateStatus.InvalidEmail;
     } else {
         status = MembershipCreateStatus.Success;
     }
     return ConvertToMem(newUser);
 }