当前位置: 首页 > 编程语言 > C#

C#LDAP查询获取组织单位内所有用户Share

时间:2023-04-10 20:34:09 C#

OU=EmployeesandOU=FormerEmployees,怎么也搞不定。我尝试使用distinguishedName进行搜索,但似乎不支持通配符。我知道一定有更简单的方法,但我的搜索工作没有产生任何域上下文并定义要搜索的容器-这里OU=EmployeesPrincipalContextctx=newPrincipalContext(ContextType.Domain,"YOURDOMAIN","OU=Employees,DC=你的公司,DC=com");//定义一个“按示例查询”主体-在这里,我们搜索一个UserPrincipal//仍然处于活动状态UserPrincipalqbeUser=newUserPrincipal(ctx);qbeUser.Enabled=true;//创建你的委托人搜索器,传入QBE委托人PrincipalSearchersrch=newPrincipalSearcher(qbeUser);//找到所有匹配项foreach(varfoundinsrch.FindAll()){//在这里做任何事情-“found”的类型是“Principal”-它可以是用户、组、计算机......}如果你没有已经-一定要阅读MSDN文章ManagingDirectorySecurityPrincipalsinthe.NETFramework3.5,如果您更喜欢“旧”.NET,它很好地展示了如何利用System.DirectoryServices.AccountManagement中的新功能2.0样式,您需要创建一个与要从中枚举对象的OU相对应的基本DirectoryEntry,然后您需要创建一个搜索对象的DirectorySearcher–如下:以上为C#学习教程:C#LDAP查询检索组织单元内所有用户共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——//创建你的“基地”——OU"FormerEmployees"DirectoryEntryformerEmployeeOU=newDirectoryEntry("LDAP://OU=FormerEmployees,DC=YourCompany,DC=com");//创建一个搜索器来查找此容器内的对象DirectorySearcherfeSearcher=newDirectorySearcher(formerEmployeeOU);//为您搜索的内容定义一个标准的LDAP过滤器-这里是“users”feSearcher.Filter=“(objectCategory=user)”;//定义您希望搜索器返回的属性feSearcher.PropertiesToLoad.Add("distinguishedName");feSearcher.PropertiesToLoad.Add("sn");feSearcher.PropertiesToLoad.Add("givenName");feSearcher.PropertiesToLoad.Add("邮件");//搜索并迭代结果foreach(SearchResultsrinfeSearcher.FindAll()){//对于每个属性,您需要检查它在sr.Properties中的位置if(sr.Properties["description"]!=null&&sr.Properties["description"].Count>0){字符串描述=sr.Properties["description"][0].ToString();}}本文收集自网络,不代表立场。侵权请点击维权联系管理员删除如需转载请注明出处:

猜你喜欢