public List <UserInfo> GetDiscoveredUsersByAttributes() { var users = new List <UserInfo>(); if (!AllDomainUsers.Any() && !TryLoadLDAPUsers()) { return(users); } var usersToAdd = AllDomainUsers.Select(CreateUserInfo); users.AddRange(usersToAdd); return(users); }
public List <UserInfo> GetDiscoveredUsersByAttributes() { var users = new List <UserInfo>(); if (!AllDomainUsers.Any() && !TryLoadLDAPUsers()) { return(users); } var usersToAdd = AllDomainUsers.Select(ldapObject => ldapObject.ToUserInfo(this, _log)); users.AddRange(usersToAdd); return(users); }
public bool TryLoadLDAPUsers() { try { if (!Settings.EnableLdapAuthentication) { return(false); } if (!LdapHelper.IsConnected) { LdapHelper.Connect(); } var users = LdapHelper.GetUsers(); foreach (var user in users) { if (string.IsNullOrEmpty(user.Sid)) { AllSkipedDomainUsers.Add(user, LdapSettingsStatus.WrongSidAttribute); continue; } if (!CheckLoginAttribute(user, Settings.LoginAttribute)) { AllSkipedDomainUsers.Add(user, LdapSettingsStatus.WrongLoginAttribute); continue; } if (!Settings.GroupMembership) { AllDomainUsers.Add(user); continue; } if (!Settings.UserAttribute.Equals(LdapConstants.RfcLDAPAttributes.DN, StringComparison.InvariantCultureIgnoreCase) && !CheckUserAttribute(user, Settings.UserAttribute)) { AllSkipedDomainUsers.Add(user, LdapSettingsStatus.WrongUserAttribute); continue; } AllDomainUsers.Add(user); } if (AllDomainUsers.Any()) { PrimaryGroupIds = AllDomainUsers.Select(u => u.GetValue(LdapConstants.ADSchemaAttributes.PRIMARY_GROUP_ID)).Cast <string>() .Distinct().ToList(); } return(AllDomainUsers.Any() || !users.Any()); } catch (ArgumentException) { _log.ErrorFormat("TryLoadLDAPUsers(): Incorrect filter. userFilter = {0}", Settings.UserFilter); } return(false); }