示例#1
0
        public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
        {
            var args = new ValidatePasswordEventArgs(username, password, true);

            OnValidatingPassword(args);

            if (args.Cancel)
            {
                status = MembershipCreateStatus.InvalidPassword;
                return(null);
            }

            if (RequiresUniqueEmail && GetUserNameByEmail(email) != string.Empty)
            {
                status = MembershipCreateStatus.DuplicateEmail;
                return(null);
            }

            var user = GetUser(username, true);

            if (user == null)
            {
                var userObj = new User {
                    UserName = username, Password = GetMd5Hash(password), EmailAddress = email
                };

                using (var usersContext = new UsersContext())
                {
                    usersContext.AddToUsers(userObj);
                    usersContext.SaveChanges();
                }

                status = MembershipCreateStatus.Success;

                return(GetUser(username, true));
            }
            status = MembershipCreateStatus.DuplicateUserName;

            return(null);
        }