В Active Directory вы можете назначить группу членом другой группы.Итак, если я правильно понимаю, вам нужно создать группу AD с именем "Foo", а затем создать две подгруппы с именем "Foo.Bar" и "Foo.Foobar".Назначьте эти две подгруппы членами группы "Foo".
Затем для пользователя, назначенного в группу "Foo.Bar".Он будет в роли как "Foo", так и "Foo.Bar".Это означает, что если вы получили WindowsPrincipal этого пользователя, WindowsPrincipal.IsInRole ("Foo") и WindowsPrincipal.IsInRole ("Foo.Bar") вернут true.
Если вы не используете функцию IsInRole () дляпроверьте членство, но чистый запрос LDAP, боюсь, мы не сможем найти простой способ выяснить отношения вложенных групп.Если вы действительно хотите найти способ сделать один вызов запроса LDAP, попробуйте найти атрибут «tokenGroups» в объекте пользователя AD.Это вычисляемый атрибут, вычисляемый AD на лету.Он содержит всю информацию о вложенных группах.Единственное, что он хранит SID.Итак, вам нужно узнать SID вашей группы AD, преобразовать его в двоичный формат LDAP и выполнить запрос.