Я пытаюсь улучшить свой код, который определяет, является ли пользователь членом данной группы AD. По сути, он работает, за исключением случаев, когда член группы находится в другом (доверенном) домене, поскольку он хранится в качестве Foreignsecurityprincipal.
Учитывая, что у меня есть действительный объект DirectoryEntry для группы, которую я хочу проверить, и для учетной записи, которую я хочу проверить, мне нужна строка фильтра DirectorySearcher, которая позволит мне подтвердить, что учетная запись находится в этой группе, даже если учетная запись является принципом зарубежной безопасности.
(Пример кода VB.NET, демонстрирующий проблему)
Dim ContainerGroup as DirectoryEntry = ... Code to get Group
Dim UserToCheckFor as DirectoryEntry = ... Code to get User
DSearcher = New DirectorySearcher(ContainerGroup, "(WHATCANIPUTINHERE)", New String() {"member;Range=0-5000"}, SearchScope.Base)
DSearcher.AttributeScopeQuery = "member"
'If an object is found, the account was in the group
Return (DSearcher.FindOne() IsNot Nothing)