Ich verwende DirectoryEntry-KlasseWie überprüft man Zugriff auf OU in C#, DirectoryEntry?
Der Versuch, alle Benutzer von bestimmten OU und Unter OUs zu lesen.
folgenden Code ist Teil der Aufgabe
using(DirectoryEntry dEntry = new DirectoryEntry(dn))
using(DirectorySearcher dSearcher = new DirectorySearcher(dEntry))
{
dSearcher.SearchScope = SearchScope.Subtree;
dSearcher.Filter = "(&(objectClass=user) (objectCategory=person))";
foreach(SearchResult in dSearcher.FindAll())
{
//Do something...
}
}
einige Unter OU geschützt sind für den aktuellen Benutzer aus der Lektüre. Und ich habe Aufgabe Ausnahme "einen oder mehrere Fehler accured" Ich suche nach Möglichkeit zu überprüfen, ob OU nicht zugänglich ist und überspringen Sie es. Und diese OU zu schreiben, um zu protokollieren. Ich habe versucht, folgende:
public void GetOu(List<MyUser> list, string path)
{
using (DirectoryEntry dEntry = new DirectoryEntry(path))
using(DirectorySearcher dSearcher = new DirectorySearcher(dEntry))
{
dSearcher.SearcherScope = SearchScope.Subtree;
dSearcher.Filter = "(objectClass=organizationalUnit)";
foreach(SearchResult result in dSearcher.FindAll())
{
GetUsersFromOU(list,result.GetDirectoryEntry());
}
}
}
public void GetUsersFromOU(List<MyUser> list,DirectoryEntry ou)
{
using (DirectorySearcher dSearcher = new DirectorySearcher(ou);
dSearcher.SearchScope = SearchScope.OneLevel;
dSearcher.Filter = "(&(objectClass=user)(objectCategory=person))";
foreach (Search result in dSearcher.FindAll())
{
//Do something.... update list...
}
}
Jetzt keine Ausnahmen erhalten und springt nicht zugänglich OUs. 1. Aber immer noch nicht finden können, was sind die "schlecht ou" s 2. Laufzeit ist katastrophal ...
Was meinst du mit nicht zugänglich? Meinst du, existiert nicht? – w0051977