//public override string CreateUserAndAccount(string userName, string password)
        //{
        //    return base.CreateUserAndAccount(userName, password);
        //}

        //public override string CreateUserAndAccount(string userName, string password, bool requireConfirmation)
        //{
        //    return base.CreateUserAndAccount(userName, password, requireConfirmation);
        //}

        public override string CreateUserAndAccount(string username, string password, bool requireConfirmation, IDictionary <string, object> values)
        {
            username = username.ToLower();
            var email        = values.FirstOrDefault(x => x.Key == "EmailId");
            var firstName    = values.FirstOrDefault(x => x.Key == "FirstName");
            var lastName     = values.FirstOrDefault(x => x.Key == "LastName");
            var userStatusId = values.FirstOrDefault(x => x.Key == "UserStatusId");

            MembershipCreateStatus status;

            var args = new ValidatePasswordEventArgs(username, password, true);

            OnValidatingPassword(args);

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

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

            var existingUser = GetUser(username, true);

            if (existingUser == null)
            {
                var profile = new ExtendedUserProfileContract()
                {
                    UserProfile = new UserProfileImplementor()
                    {
                        EmailId   = email.Value as string,
                        FirstName = firstName.Value as string,
                        LastName  = lastName.Value as string,
                        //UserId = providerUserKey
                        UserName     = args.UserName,
                        UserStatusId = Convert.ToByte(userStatusId.Value)
                    }
                    ,
                    WebPagesMembership = new WebPagesMembershipImplementor()
                    {
                        //ConfirmationToken =
                        CreateDate  = DateTime.UtcNow,
                        IsConfirmed = !requireConfirmation || (Convert.ToByte(userStatusId.Value) != Convert.ToByte(UserStatusOptions.New)),
                        //LastPasswordFailureDate =
                        Password            = Crypto.HashPassword(args.Password),
                        PasswordChangedBy   = Requestor.UserId,
                        PasswordChangedDate = DateTime.UtcNow,
                        PasswordSalt        = String.Empty,
                        //PasswordFailuresSinceLastSuccess
                        //PasswordVerificationToken =
                        // PasswordVerificationTokenExpirationDate =
                        //UserId =  = providerUserKey
                    }
                };
                Db.InsertUserProfile(new ExtendedUserProfileContract[] { profile });
                status = MembershipCreateStatus.Success;

                return(username);
            }
            status = MembershipCreateStatus.DuplicateUserName;

            return(null);
        }
Example #2
0
        public override MembershipUser CreateUser(
            string username,
            string password,
            string email,
            string passwordQuestion, //
            string passwordAnswer,   //
            bool isApproved,
            object providerUserKey,
            out MembershipCreateStatus status)
        {
            username = username.ToLower();

            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 existingUser = GetUser(username, true);

            if (existingUser == null)
            {
                var profile = new ExtendedUserProfileContract()
                {
                    UserProfile = new UserProfileImplementor()
                    {
                        EmailId = email,
                        //FirstName =
                        //LastName =
                        //UserId = providerUserKey
                        UserName     = username,
                        UserStatusId = isApproved ? Convert.ToByte(UserStatusOptions.Approved) : Convert.ToByte(UserStatusOptions.New)
                    }
                    ,
                    WebPagesMembership = new WebPagesMembershipImplementor()
                    {
                        //ConfirmationToken =
                        CreateDate  = DateTime.UtcNow,
                        IsConfirmed = isApproved,
                        //LastPasswordFailureDate =
                        Password            = password,
                        PasswordChangedBy   = Requestor.UserId,
                        PasswordChangedDate = DateTime.UtcNow,
                        PasswordSalt        = String.Empty,
                        //PasswordFailuresSinceLastSuccess
                        //PasswordVerificationToken =
                        // PasswordVerificationTokenExpirationDate =
                        //UserId =  = providerUserKey
                    }
                };
                Db.InsertUserProfile(new ExtendedUserProfileContract[] { profile });
                status = MembershipCreateStatus.Success;

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

            return(null);
        }