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(); }