我正在尝试从Active Directory中获取所有的用户。
private void Form1_Load(object sender, EventArgs e)
{
string[] RetProps = new string[] { "SamAccountName", "DisplayName" };
List<string[]> users = new List<string[]>();
foreach (SearchResult User in GetAllUsers("localhost", RetProps))
{
DirectoryEntry DE = User.GetDirectoryEntry();
try
{
users.Add(new string[] { DE.Properties["SamAccountName"][0].ToString(), DE.Properties["DisplayName"][0].ToString() });
}
catch
{
}
}
}
internal static SearchResultCollection GetAllUsers(string DomainName, string[] Properties)
{
DirectoryEntry DE = new DirectoryEntry("LDAP://" + DomainName);
string Filter = "(&(objectCategory=organizationalPerson)(objectClass=User))";
DirectorySearcher DS = new DirectorySearcher(DE);
DS.PageSize = 10000;
DS.SizeLimit = 10000;
DS.SearchScope = SearchScope.Subtree;
DS.PropertiesToLoad.AddRange(Properties); DS.Filter = Filter;
SearchResultCollection RetObjects = DS.FindAll();
return RetObjects;
}但是当到达DS.FindAll();中的GetAllUsers函数时,它就被卡住了。
发布于 2014-10-17 09:48:46
问题是我没有在(调试->异常)中启用“公共语言运行时异常”。除了DS.FindAll();存在运行时,因此它停止执行剩余的代码。
https://stackoverflow.com/questions/26405843
复制相似问题