public IList<DirectoryUser> GetUsers() { IList<DirectoryUser> ldapUsersList = new List<DirectoryUser>(); DirectoryEntry group = GetDirectoryEntry(fullPath, new[] { groupMemberAttribute }); PropertyValueCollection memberPaths = GetMemberPaths(group); foreach (string memberPath in memberPaths) { try { DirectoryUser user = new DirectoryUser(); DirectoryEntry member = GetMember(memberPath); SetUsername(user, member); SetFullName(user, member); SetEmail(user, member); SetNickname(user, member); ldapUsersList.Add(user); } catch (Exception ex) { logger.ErrorException("Unable to read member from ldap, path: " + memberPath, ex); } } if (memberPaths.Count < 1) { logger.Warn("No members were returned from group: " + fullPath + ", group member attribute name: '" + groupMemberAttribute); } return ldapUsersList; }
private void SetEmail(DirectoryUser user, DirectoryEntry member) { try { user.Email = member.Properties[mapEmail][0].ToString(); //email } catch (Exception ex) { logger.ErrorException("Unable to get email property for member: " + member.Path + ", email property name: " + mapEmail, ex); throw; } }
private void SetNickname(DirectoryUser user, DirectoryEntry member) { try { user.Nickname = member.Properties[mapNickname][0].ToString(); //nickname } catch (Exception ex) { logger.ErrorException("Unable to get nickname property for member: " + member.Path + ", nickname property name: " + mapNickname, ex); throw; } }
private void SetUsername(DirectoryUser user, DirectoryEntry member) { try { string directoryUsername = member.Properties[mapUsername][0].ToString(); //username user.Username = useIntegratedAuth ? string.Format("{0}\\{1}", domain, directoryUsername) : directoryUsername; } catch (Exception ex) { logger.ErrorException("Unable to get username property for member: " + member.Path + ", username property name: " + mapUsername, ex); throw; } }