1
我有几个组,每个组都由一个组拥有。查询ActiveDirectory用于组拥有的组,我是其中的成员
通过组别group1_owners(不知道如果它是一个命名约定) 第2组由group2_owners 管理管理...
给用户,我需要找到所有组,由组,拥有的地方用户是会员。
是否有可能在单个查询中找到这样的组?
这是我用来检查用户是否在一个组的所有者组,但不知道它是否有效。
var domain = new DirectoryEntry("LDAP://" + domainName, null, null, AuthenticationTypes.Secure););
DirectorySearcher searcher = new DirectorySearcher(domain);
searcher.Filter = string.Format("(&(objectCategory=group)(cn={0}))", group);
searcher.PropertiesToLoad.Add("managedby");
searcher.SearchScope = SearchScope.Subtree;
SearchResult groupSR = searcher.FindOne();
var ownerGroup = new DirectoryEntry("LDAP://" + groupSR.Properties["managedby"][0],null, null, AuthenticationTypes.Secure);
PropertyValueCollection members = ownerGroup.Properties["member"];
for(i=0;i<members.Count;i++)
{
if(members[i].ToString()==userName) .......
}
您是否想要照顾一个事实:用户可以属于属于拥有您感兴趣的组的组的组?你的代码只是检查一个用户DIRCTLY是否属于管理你感兴趣的组的组。 – JPBlanc 2011-06-15 19:05:52
@JBBlanc:我只需要检查,如果用户直接属于所有者组。 – 2011-06-16 11:51:47