按属性过滤用户

彼得

这提供了ActiveDirectory中的UserPrincipals列表,其中用户位于组“ x”中:

var domainContext = new PrincipalContext(ContextType.Domain);
var groupPrincipal = GroupPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, "x");

现在如何通过自定义属性过滤此列表中的用户?所有用户在自定义属性“建筑物”中都有一个条目,我希望列表中仅包含来自特定建筑物的用户。

解决方案

愚蠢的我...将成员从groupPrincipal投射到DirectoryEntry,然后访问属性..

        foreach (var member in groupPrincipal.Members)
        {
            // maybe some try-catch ..
            System.DirectoryServices.DirectoryEntry i = (System.DirectoryServices.DirectoryEntry)member.GetUnderlyingObject();
            if (i.Properties["building"].Value.toString() == "NSA HQ")
            {
                // Do stuff here
            }

        }
mswietlicki

是的,您可以使用member.GetUnderlyingObject()

var members = groupPrincipal.Members.Where(member=>(member.GetUnderlyingObject() as DirectoryEntry).Properties["building"].Value.ToString() == "NSA HQ");

在一批检索AD自定义属性中所指出的

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章