public ActiveDirectoryUser[] GetCreatableUsers(string name)
        {
            string[] names = name.Split(new char[] { ',' });

            ActiveDirectoryUser[] adUsers = null;
            if (name.Length > 1)
                adUsers = _Service.SearchActiveDirectory(names[0], names[1]);
            else if (name.Length == 1)
                adUsers = _Service.SearchActiveDirectory(names[0], "");

            ResultsService manager = new ResultsService();

            Setting[] settings = manager.GetSettings_NonWeb("System");
            string defaultAccountDomain = "";
            foreach (Setting setting in settings)
            {
                if (setting.EntryKey == "DefaultAccountDomain")
                    defaultAccountDomain = setting.Value;
            }
            foreach (ActiveDirectoryUser adUser in adUsers)
            {
                User ue = manager.GetUserByAuthExt("Windows", defaultAccountDomain + "\\" + adUser.cn);
                if (ue != null)
                {
                    adUser.ANCRAccountUserName = ue.UserName;
                    adUser.Enabled = ue.Enabled;
                }
                if (string.IsNullOrEmpty(adUser.ANCRAccountUserName))
                {
                    if (adUser.mail != "")
                    {
                        User uebm = manager.GetUser_NonWeb(adUser.mail);
                        if (uebm != null)
                            adUser.ANCRAccountUserName = uebm.UserName;
                    }
                }
                if (string.IsNullOrEmpty(adUser.ANCRAccountUserName))
                {
                    foreach (string mail in adUser.proxyAddresses)
                    {
                        User uebm = manager.GetUser_NonWeb(mail);
                        if (uebm != null)
                        {
                            adUser.ANCRAccountUserName = uebm.UserName;
                            break;
                        }
                    }
                }
            }

            return adUsers;
        }
        public User CreateUser(ActiveDirectoryUser adUser)
        {
            ActiveDirectoryUser[] adUsers = _Service.SearchActiveDirectory(adUser.cn);
            if (adUsers.Length > 1)
            {
                throw new UserCreationException("Multiple user accounts found in Active Directory for " + adUser.cn + ".  Cannot continue.");
            }
            else if (adUsers.Length == 0)
            {
                throw new UserCreationException("No user account found in Active Directory for " + adUser.cn + ".  Cannot continue.");
            }

            ResultsService manager = new ResultsService();
            Level[] levels = manager.GetLevels();
            Transport[] transports = manager.GetTransports();
            Transport smtp = null;
            foreach (Transport transport in transports)
            {
                if (transport.Name == Properties.Settings.Default.SmtpTransportName)
                    smtp = transport;
            }

            User user = new User();
            user.UserName = adUser.mail;
            user.MiddleName = "";

            user.LastName = adUser.sn ?? "";
            user.FirstName = adUser.givenName ?? "";

            user.Enabled = true;

            List<UserTransport> userTransports = new List<UserTransport>();
            if (smtp != null)
            {
                UserTransport userMail = new UserTransport();
                userMail.Address = adUser.mail ?? "";
                userMail.Levels = levels;
                userMail.Transport = smtp;
                userTransports.Add(userMail);
            }

            user.Transports = userTransports.ToArray();
            Extension.DefaultExtension.ExtendUserFromExternalDirectory(user, transports, levels, adUser.mail, adUser.proxyAddresses);

            user = manager.CreateANCRUser(user);

            manager.AssignUserToRole(user.UserName, "Receiver");
            //manager.AccountConfirmation(user.UserName);
            //manager.CreatePassword(user.UserName);

            Setting[] settings = manager.GetSettings_NonWeb("System");
            string defaultAccountDomain = "";
            foreach (Setting setting in settings)
            {
                if (setting.EntryKey == "DefaultAccountDomain")
                    defaultAccountDomain = setting.Value;
            }

            manager.UserEntry(user.UserName, "AuthExt", "Windows", defaultAccountDomain + "\\" + adUser.cn, "");
            return user;
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     _ResultService = new ResultsService();
 }