我有一些代码可以检索Active目录中不同组中的用户。
string sADPath = "LDAP://" + tbDomain.Text;
string username = tbUsername.Text;
string password = tbPassword.Text;
DirectorySearcher mySearcher = new DirectorySearcher(directoryEntry);
int MaxResults = Int32.MaxValue - 1;
ComboBoxItem selectItem = (ComboBoxItem)ddlGroups.SelectedItem;
String value = selectItem.Value;
mySearcher.Filter = ("(&(objectCategory=person)(objectClass=User)(memberOf=" + value + "))");
mySearcher.SearchScope = SearchScope.Subtree;
foreach (SearchResult temp in mySearcher.FindAll())
{
}
此代码适用于某些群组,但不适用于所有群组。
例如,它获取Domain Admins的值,但不是Domain Users中的用户。
它也不会让我的用户进入用户文件夹组?
我在FindAll()的域用户获得0值。
答案 0 :(得分:4)
您遇到了不同的问题。
您无法找到Domain Users
的任何用户成员这一事实可以解释为Domain Users
是您创建的每个新用户的默认主要组。 primarygroup
不在属性的成员中,而是在primaryGroupID
属性中。更多primaryGroupID
不是区分名称,而只是主要组的相对标识符(RID)。你会在我写的答案中找到C#代码:How to retrieve Users in a Group, including primary group users