Exemplo n.º 1
0
        private static bool IsInGroupsMemberOf(string memberName, AD_Group tempGroup, ref List <string> groupsChecked, out AD_Group group)
        {
            groupsChecked.Add(tempGroup.Name);

            var members = tempGroup.GetMembers();

            foreach (AD_Member member in members)
            {
                if (string.Equals(member.Name, memberName, StringComparison.CurrentCultureIgnoreCase))
                {
                    group = tempGroup;
                    return(true);
                }

                if (member is AD_Group)
                {
                    if (groupsChecked.Contains(member.Name))
                    {
                        continue;
                    }

                    if (IsInGroupsMemberOf(memberName, (AD_Group)member, ref groupsChecked, out group))
                    {
                        return(true);
                    }
                }
            }

            group = null;
            return(false);
        }
Exemplo n.º 2
0
        public bool IsMemberOf(string groupName, out AD_Group group)
        {
            var tempGroup = DirectoryServices.GetObject(groupName, AD_SearchScope.Subtree) as AD_Group;

            if (tempGroup == null)
            {
                throw new Exception();                    //TODO: throw custom exception
            }
            List <string> groupsChecked = new List <string>();

            return(IsInGroupsMemberOf(this.Name, tempGroup, ref groupsChecked, out group));
        }