[英]LDAP DirectorySearcher memberOf property only returns 1 group
我正在嘗試通過我的 AD 中的所有活動用戶 go 並提取各種屬性。 我有這個工作接受,即 memberOf 屬性僅返回用戶所屬的組中的 1 個,而不是用戶所屬的所有各種組。 有誰知道我缺少什么讓我的搜索返回所有組?
List<ADUser> lstADUsers = new List<ADUser>();
string[] propertiesToLoad = new string[7] { "name","displayName", "telephoneNumber","description","title","department","manager","memberOf"};
string filter = "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=32)(!userAccountControl:1.2.840.113556.1.4.803:=2)(userAccountControl:1.2.840.113556.1.4.803:=512)(samAccountType=805306368)(mail=*))";
using (var context = new DirectoryEntry("LDAP:MYLDAP"))
{
using (DirectorySearcher searcher = new DirectorySearcher(context,filter,propertiesToLoad))
{
searcher.PageSize = 15000;
searcher.SizeLimit = 15000;
foreach (SearchResult sResultSet in searcher.FindAll())
{
//main properties to get from ad
var UserModel = new ADUser();
UserModel.FullName = GetProperty(sResultSet, "name");
UserModel.DisplayName = GetProperty(sResultSet, "displayName");
UserModel.TelePhoneNumber = GetProperty(sResultSet, "telephoneNumber");
UserModel.Description = GetProperty(sResultSet, "description");
UserModel.JobTitle = GetProperty(sResultSet, "title");
UserModel.Department = GetProperty(sResultSet, "department");
UserModel.MemberOf = GetProperty(sResultSet, "memberOf");
lstADUsers.Add(UserModel);
}
}
}
在 foreach 語句中添加了這個。
//enumerate through the memberOf property to get all the groups for the user
string memberships = string.Empty;
foreach(object memberOf in sResultSet.Properties["memberOf"])
{
memberships += memberOf.ToString() + "\n";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.