Code-Beispiel
Ein Beispiel zum Einsatz der Klasse System.DirectoryServices.DirectoryEntry aus der .NET-Klassenbibliothek.
Autor: Dr. Holger Schwichtenberg
Beschreibung
Nach der Bindung eines Benutzer-Objekts kann über die Klasse DirectoryEntry auch schreibend auf die Attribute zugegriffen werden. Zu beachten ist dabei, dass Attribute, die bereits einen Wert besitzen, anders zu behandeln sind als solche, die noch keinen Wert besitzen. Wie bereits in den allgemeinen Programmiertechniken in diesem Kapitel beschrieben, kann dies umgangen werden, indem die PropertyValueCollection vor dem Beschreiben mit Clear() gelöscht wird.
Beispiel
Im folgenden Beispiel wird die Stadt des Benutzers "H.Schwichtenberg" geändert.
Programmcodebeispiele Visual Basic .NET (VB.NET)
' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Benutzerdaten ändern
' (C) Holger@Schwichtenberg.de
' ============================
Sub ADSBenutzeraendern()
Dim o As DirectoryEntry
Dim p As PropertyValueCollection
out("# Ändern des Benutzers: " & LDAPhs)
' --- Zugriff auf Eintrag
o = New DirectoryEntry(LDAPhs)
' --- Zugriff auf Attribut
p = o.Properties("l")
' --- bisherigen Eintrag löschen
p.Clear()
' --- Stadt neu eintragen
p.Add("Essen")
' --- Änderungen speichern
o.CommitChanges()
End Sub
Programmcodebeispiele CSharp (C#)
using System;
using System.DirectoryServices;
using ActiveDs;
namespace FCLBuch._SystemDirectoryServices {
public class Samples_ADSI {
public void ADSBenutzeraendern() {
// Benutzerdaten ändern
FclOutput.PrintOut("# Ändern des Benutzers: " + LDAPhs);
// Zugriff auf Eintrag
DirectoryEntry o = new DirectoryEntry(LDAPhs);
// Zugriff auf Attribut
PropertyValueCollection p = o.Properties["l"];
// bisherigen Eintrag löschen
p.Clear();
// Stadt neu eintragen
p.Add("Essen");
// Änderungen speichern
o.CommitChanges();
}
}
}
Hinweise
Ausgaben werden in den Beispielen durch Hilfsroutinen wie out() und
PrintOut() erzeugt. Diese sind hier nicht angegeben, da deren Implementierung
von der jeweiligen Umgebung abhängt. Für Konsolenanwendungen können hier z.B.
Console.WriteLine() einsetzen.
Querverweise
Liste aller Codebeispiele
Definition '.NET Framework Class Library'
Verfügbarkeit der Klasse 'System.DirectoryServices.DirectoryEntry'
Übersicht über den FCL-Namensraum 'System.DirectoryServices'
.NET & Visual Studio Community Portal