C#ActiveDirectory - 检查objectClass

时间:2015-09-11 07:57:14

标签: c# active-directory

我对Active Directory执行查询,可以返回用户和组。

(&(|(&(objectCategory=person)(objectClass=user))(objectCLass=group))(...))

但是当我尝试从结果集中获取objectClass属性时,我得到了"top"

DirectorySearcher searcher = new DirectorySearcher(baseDirEntry);
searcher.Filter = "(&(|(&(objectCategory=person)(objectClass=user))(objectCLass=group))(|(sAMAccountName=*{0}*)(displayName=*{0}*)(email=*{0}*)))";
//other props
searcher.PropertiesToLoad.Add(AdProperties.OBJECTCLASS);

SearchResultCollection userResult = searcher.FindAll();
foreach (SearchResult rs in userResult)
{
   string objectClass = GetProp(rs, AdProperties.OBJECTCLASS);//returns "top" every time
}

如何判断AD对象是用户还是组?

修改 ObjectCategory proeprty返回一个可分辨的名称,如

CN=Person(or Group),CN=Schema,CN=Configuration,DC=...,DC=...,DC=...

所以我可以解析字符串并获得第一个CN值,但它看起来不是最好的方法。

0 个答案:

没有答案