ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
535
535
EMPFEHLEN
-
30.05.11 19:01 #1
- Registriert seit
- Oct 2003
- Beiträge
- 117
Hi Forum
ich habe mein AD mit einem ldif-file erweitert:
- Ich habe eine neue Schema Class 'mySchemaClass' hinzugefügt
- Und für die Schema Class vier neue Attribute Attr1, Attr2, Attr3, Attr4 hinzugefügt.
Alles funktioniert wunderbar.
Wenn ich nun mit ADSIEdit.exe meine Schema Class anschaue, dann sehe ich dort das Attribute: "mayContain". welches die Werte Attr1, Attr2, Attr3, Attr4 enthält.
Alles wie gewünscht.
Aber wie zum Henker komme ich mit C# an dieses Attribut "mayContain" ran?
Das Attribute gibt es nicht als Eigenschaft von ActiveDirectorySchema noch ist es in den Eigenschaften OptionalProperties, MandatoryProperties gelistet.
Ich komme ran, wenn ich einen DirectorySearcher wie folgt ausführe:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
DirectoryEntry dir = new DirectoryEntry("LDAP://1.2.3.4/cn=schema,CN=Configuration,DC=example,DC=com"); DirectorySearcher searcher = new DirectorySearcher(dir); searcher.Filter = "(cn=mySchemaClass)"; SearchResult searchResult = searcher.FindOne(); ResultPropertyCollection prop = searchResult.Properties; foreach (string propName in prop.PropertyNames) { if (propName.Equals("maycontain", StringComparison.InvariantCultureIgnoreCase)) { log.Text += "\r\n" + propName + ": "; foreach (string value in prop[propName]) { log.Text += "\r\n" + value+ ": "; } } }
Aber das kann doch nicht sein, dass ich das so mühsam machen muss? Ich meine, an die Schema Class komme ich ja ganz einfach mit:
Code :1
ActiveDirectorySchemaClass.FindByName(getContext(), "mySchemaClass");
Ideen?
Cheerioh
SiS
-
Na ja, mühsam kann man das nicht wirklich nennen, aber das ist sicher kürzer:
Code csharp:1 2 3 4 5 6 7
System.DirectoryServices.ResultPropertyCollection res = searchResult.Properties; var props = res["mayContain"]; // möglicherweise ist ein res.Contains("mayContain") besser, ich weiss nicht, was operator this macht, wenn der Schlüssel nicht drin ist. Da in der Doku nichts von einer Exception steht vermute ich, dass eine leere Collection zurückgegeben wird. if (props.Count == 0) throw new Exception("mayContain is not contained!"); foreach (string s in props) Console.WriteLine(s);
Viele Tutorials und Artikel zur Programmierung unter Windows mit C++ und C#. Tägliche Updates und Antworten auf eure Fragen:
Win32Easy - Blog
Es würde mich freuen, wenn ihr einen Kommentar postet!
Ähnliche Themen
-
Active Directory auslesen?
Von danyh im Forum PHPAntworten: 1Letzter Beitrag: 22.03.10, 15:20 -
Active Directory auslesen / LDAP
Von jma im Forum .NET DatenverwaltungAntworten: 2Letzter Beitrag: 06.07.06, 13:07 -
Active Directory MMC Snap-In für Schema Manipulation aktivieren
Von Thomas Darimont im Forum Microsoft WindowsAntworten: 0Letzter Beitrag: 25.09.05, 01:36 -
Active Directory Informationen auslesen
Von nneri im Forum ASPAntworten: 0Letzter Beitrag: 20.05.05, 09:50 -
Active Directory auslesen
Von michaelwengert im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 15.07.04, 12:10





Zitieren
Login





