有没有办法判断一个帐户是否属于某个OU?

时间:2018-09-10 13:45:43

标签: c# .net active-directory ldap

我可以检查一个帐户是否是AD组的成员,但是有没有办法判断一个帐户是否属于OU?我想按OU而不是按AD组搜索,因此我不确定是否可以。以下是我搜索广告组的方法。

string myADSPath="LDAP://onecity/CN=Users,DC=onecity,DC=corp,DC=fabrikam,DC=com";  


if (DirectoryEntry.Exists(myADSPath))  
{  
    Console.WriteLine("In the group");  
}  
    else  
{  
    Console.WriteLine("Couldn't get in the group");  
}  

1 个答案:

答案 0 :(得分:0)

使用这种方法,您可以检查指定的用户是否在foo/bar OU中:

public bool CheckUserInOU(string userName)
{
    using (var entryPoint = new DirectoryEntry($@"LDAP://onecity/OU=bar,OU=foo,DC=onecity,DC=corp,DC=fabrikam,DC=com"))
    {
        // User and pass for the LDAP query user if needed.
        entryPoint.Username = "YourUsernameHere";
        entryPoint.Password = "YourPasswordHere";

        using (var searcher = new DirectorySearcher(entryPoint))
        {
            searcher.SearchScope = SearchScope.OneLevel;
            searcher.Filter = $"(&(samAccountName={userName})(objectCategory=user))";

            return searcher.FindOne() != null;
        }
    }
}

正如@Damien_The_Unbeliever所说,如果您有用户,则distinguishedName属性将包含OU。