C# - Active Directory objektumok tulajdonságainak megváltoztatása saját programból

forráskód letöltése
Mostani cikkünkben nem csak azt nézzük meg, hogy miként tudjuk az Active Directory egyes objektumainak aktuális értékeit lekérdezni, hanem azt is vizsgáljuk, hogy miként tudjuk megváltoztatni ezeket az értékeket.
Mellékelt példában egy olyan programot készítünk, melynek segítségével egy felhasználó e-mail címét tudjuk átírni egy tetszőleges másik e-mail címre.
Cikkünk az Active Directory programozásának megvalósítását tűzi ki célul és nem foglalkozik elméleti kérdésekkel, melyek azonban elengedhetetlenek a program helyes, hibamentes futtatása érdekében. E témával részletesen a Windows Software Online hetilap 2. évfolyam 9. számában megjelent „Az Active Directory programozásának alapvető feltételei” című cikke foglalkozik.
Az Active Directory eléréséhez most is az LDAP protokollt használjuk. A kapcsolat létrehozásához a DirectoryEntry osztály egy példányát hozzuk létre, melynek konstruktorában megadjuk a kapcsolódási sztringet a megadott felhasználóhoz.
    private void button1_Click(object sender, System.EventArgs e)
    {
      DirectoryEntry de = new DirectoryEntry("LDAP://cn="+textBox2.Text+",CN=Users,"+textBox1.Text);
Ha adott a kapcsolat lekérdezzük a megadott felhasználó jelenlegi e-mail címét, majd ezt rögtön meg is változtatjuk az újonnan megadottra.
      listBox1.Items.Add("Régi e-mail cím: " + de.Properties["mail"][0]);
      de.Properties["mail"][0] = textBox3.Text;
Az Active Directory-ban történt változtatások véglegesítéséhez meg kell hívnunk a CommitChanges függvényt is. Ezt követően, ellenőrzésképpen lekérdezzük ismét az e-mail címet, hogy láthassuk, hogy a változtatás tényleg megtörtént-e.
      de.CommitChanges();
      listBox1.Items.Add("Aktuális e-mail cím: " + de.Properties["mail"][0]);
    }