활성 디렉토리에서 사용자 및 그룹을 가져 오는 중 일부 테스트 후에 memberOF
이 member
과 일치하지 않음을 알게되었습니다. example userA는 groupW의 회원이지만 groupW는 userA를 회원으로 표시하지 않습니다. 이 문제를 해결하기 위해 우리는 회원과 회원을 모두 확보해야만했습니다.2의 델타 찾기 IEnumerable <T>
public class User
{
public string UserName { get; set; }
public IList<string> MemberOf { get; set; } // list of group names
}
public class Group
{
public string Name { get; set; }
public IList<string> Members { get; set; } // list of username
}
나는 델타를 얻을 수있는 방법
IEnumerable<Group> allGroups
IEnumerable<User> allUsers
를 얻을?
나는이 개 사전을 가져야한다 또는 조회 .. 등
- allGroups 목록 User.MemberOF 에있는 모든 그룹이 사전은 사용자의 그룹 이름과 값 목록으로 키가 있어야합니다.
예 GROUPA 사용자 {A, B, C}, GroupB가 사용자 {A, C}
- ALLUSERS 에서 모든 사용자가 있어야 Group.member 사전에서 발견되지 사용자 이름과 그룹의 값 목록으로 키를 입력하십시오.
예를 들어 사용자 A 그룹 {X, Y} 사용자 B 그룹 {X, Z}
편집 : 또 다른 예는 :이은 2 IEnumerable을 Active Directory에서 반환한다고 가정 해 봅시다.
`IEnumerable<Group> allGroups` contains
- GroupA {"Mike","Jan","David"}
- GroupB {"Kim","David","Jolan","Tim"}
// where Groupx is the name of the group and between {""} is the list of member
IEnumerable<User> allUsers contains
- Mike {"GroupA","GroupB","GroupC"}
- David {"GroupA","GroupB"}
- Jolan {"GroupB","GroupC"}
이 예에서 우리는 LDAP에 groupA의 모든 구성원을 얻으려고 요청할 때 "졸란"이 나열되지 않음을 알 수 있습니다. 그러나 "졸란"이 회원 인 모든 그룹을 얻으려고하면 "그룹 A"가 표시됩니다. "Mike"와 마찬가지로 그는 GroupB 및 GroupC의 구성원이기도합니다. GroupC가 목록에 없습니다. 이 경우 "David" 에 올바른 값이 있습니다. 그는 내가 좀 더 명확
을 희망이Dictionary<string,IList<string>> missingUsers;
Item 1 > key="Mike", Value={"GroupB","GroupC"}
Item 2 > Key="Jolan" , Value= {"GroupC"}
Dictionary<string,IList<string>> missingGroup;
item 1 > Key="GroupB",{"Tim"}
과 같이해야한다 allUsers
결과에 아니지만 또한
는 "팀이"GroupB가 목록에 있는지 알
첫 번째 예로 groupA에 **없는 ** 사용자 목록을 찾으려고하십니까? IE. A, B 및 C는 groupA에서 ** 아니지만 ** 다른 모든 사용자는 ** groupA에서 **입니까? – Kevin
좋아, 내가 게시물을 편집하고 더 명확하게하려고합니다. – Maro
나는 LDAP와 같은 일관성없는 결과를 줄 것을 기대하지 않았기 때문에 그렇게 기대하지 않았다. 수정하기 쉽다 ... 나는 나의 대답을 업데이트 할 것이다. – Kevin