栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用C#查找递归组成员身份(Active Directory)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用C#查找递归组成员身份(Active Directory)

谢谢您提出这个有趣的问题。

接下来,只是更正,您说:

我研究了以下LDAP代码以一次获取所有memberOf条目:

(memberOf:1.2.840.113556.1.4.1941:={0})

你没有使它工作。我记得当我了解它的存在时使它起作用,但是它在LDIFDE.EXE筛选器中。因此,我将其应用于C#中的ADSI,并且仍在工作。我从Microsoft那里获得的示例中括号过多,但可以正常工作(来自AD
Search过滤器语法
)。

根据您关于我们不知道用户是否明确属于该组这一事实的说法,我再添加一个请求。我知道这不是很好,但这是我能做的最好的。

static void Main(string[] args){    DirectoryEntry debase = new DirectoryEntry("LDAP://WM2008R2ENT:389/dc=dom,dc=fr");    DirectorySearcher dsLookFor = new DirectorySearcher(debase);  dsLookFor.Filter = "(member:1.2.840.113556.1.4.1941:=CN=user1 Users,OU=MonOu,DC=dom,DC=fr)";  dsLookFor.SearchScope = SearchScope.Subtree;  dsLookFor.PropertiesToLoad.Add("cn");  SearchResultCollection srcGroups = dsLookFor.FindAll();    foreach (SearchResult srcGroup in srcGroups)  {    Console.WriteLine("{0}", srcGroup.Path);    foreach (string property in srcGroup.Properties.PropertyNames)    {      Console.WriteLine("t{0} : {1} ", property, srcGroup.Properties[property][0]);    }    DirectoryEntry aGroup = new DirectoryEntry(srcGroup.Path);    DirectorySearcher dsLookForAMermber = new DirectorySearcher(aGroup);    dsLookForAMermber.Filter = "(member=CN=user1 Users,OU=MonOu,DC=dom,DC=fr)";    dsLookForAMermber.SearchScope = SearchScope.base;    dsLookForAMermber.PropertiesToLoad.Add("cn");    SearchResultCollection memberInGroup = dsLookForAMermber.FindAll();    Console.WriteLine("Find the user {0}", memberInGroup.Count);  }  Console.ReadLine();}

在我的测试树中,这给出了:

LDAP://WM2008R2ENT:389/CN=MonGrpSec,OU=MonOu,DC=dom,DC=fradspath : LDAP://WM2008R2ENT:389/CN=MonGrpSec,OU=MonOu,DC=dom,DC=frcn : MonGrpSecFind the user 1LDAP://WM2008R2ENT:389/CN=MonGrpDis,OU=ForUser1,DC=dom,DC=fradspath : LDAP://WM2008R2ENT:389/CN=MonGrpDis,OU=ForUser1,DC=dom,DC=frcn : MonGrpDisFind the user 1LDAP://WM2008R2ENT:389/CN=MonGrpPlusSec,OU=ForUser1,DC=dom,DC=fradspath : LDAP://WM2008R2ENT:389/CN=MonGrpPlusSec,OU=ForUser1,DC=dom,DC=frcn : MonGrpPlusSecFind the user 0LDAP://WM2008R2ENT:389/CN=MonGrpPlusSecUniv,OU=ForUser1,DC=dom,DC=fradspath : LDAP://WM2008R2ENT:389/CN=MonGrpPlusSecUniv,OU=ForUser1,DC=dom,DC=frcn : MonGrpPlusSecUnivFind the user 0

(已编辑)“ 1.2.840.113556.1.4.1941”在W2K3 SP1中不起作用,开始在SP2中起作用。我想与W2K3
R2相同。它应该可以在W2K8上运行。我在这里用W2K8R2进行测试。我很快就能在W2K8上对其进行测试。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/576297.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号