public IUser CreateUser(string userName, string password, string emailAddress, string passwordQuestion, string passwordQuestionAnswer)
        {
            var status = membershipManager.CreateUser(userName, password, emailAddress, passwordQuestion, passwordQuestionAnswer);

            if (status == MembershipCreateStatus.Success)
            {
                return(membershipUserMapper.Map(membershipManager.GetUser(userName)));
            }
            throw new MembershipCreateUserException(status);
        }
        void OnCreateUser(object sender, EventArgs e)
        {
            IMembershipManager membershipManager = UserManagerProviderFactory.CreateMembershipManager(); // new AspNetSqlProviderService(m_Url);

            string[]           users  = membershipManager.GetAllUsers(m_Application);
            Predicate <string> exists = delegate(string user)
            {
                return(user == m_UserNameTextBox.Text);
            };

            if (Array.Exists(users, exists))
            {
                m_Validator.SetError(m_UserNameTextBox, "User name already exists");
                return;
            }
            m_Validator.Clear();

            if (m_PasswordTextbox.Text == String.Empty)
            {
                m_Validator.SetError(m_PasswordTextbox, "Password cannot be empty");
                return;
            }
            m_Validator.Clear();

            if (m_PasswordTextbox.Text != m_ConfirmedPasswordTextBox.Text)
            {
                m_Validator.SetError(m_ConfirmedPasswordTextBox, "Confirmed password does not match");
                return;
            }
            m_Validator.Clear();

            if (m_UserNameTextBox.Text == String.Empty)
            {
                m_Validator.SetError(m_UserNameTextBox, "User name cannot be empty");
                return;
            }
            m_Validator.Clear();

            if (m_EmailTextBox.Text == String.Empty)
            {
                m_Validator.SetError(m_EmailTextBox, "Email cannot be empty");
                return;
            }
            m_Validator.Clear();

            if (m_SecurityQuestionTextBox.Text == String.Empty)
            {
                m_Validator.SetError(m_SecurityQuestionTextBox, "Security question cannot be empty");
                return;
            }
            m_Validator.Clear();

            if (m_SecurityAnswerTextbox.Text == String.Empty)
            {
                m_Validator.SetError(m_SecurityAnswerTextbox, "Security question cannot be empty");
                return;
            }
            m_Validator.Clear();

            MembershipCreateStatus status = membershipManager.CreateUser(m_Application, m_UserNameTextBox.Text, m_PasswordTextbox.Text, m_EmailTextBox.Text, m_SecurityQuestionTextBox.Text, m_SecurityAnswerTextbox.Text, m_ActiveUserCheckBox.Checked);

            if (status != MembershipCreateStatus.Success)
            {
                MessageBox.Show(status.ToString(), "Credentials Manager", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                m_Users.Add(m_UserNameTextBox.Text);
                m_CreatedUsersListView.AddItem(m_UserNameTextBox.Text, true);
                m_UserNameTextBox.Text = String.Empty;
                m_UserNameTextBox.Focus();
                m_GeneratePasswordCheckBox.Checked = false;
                m_PasswordTextbox.Text             = String.Empty;
                m_ConfirmedPasswordTextBox.Text    = String.Empty;
            }
        }