This section contains information about how to modify the attributes of an existing entry inside a directory using classes provided by Novell.Directory.Ldap namespace. To modify the attributes of an existing entry, use the Modify function of LdapConnection class.
Modifying an entry attributes involves three steps:
Create an LdapModification object for each of the attributes to be modified using an attribute with a new value (in case of add/replace) and the modification type, for example, add, replace or delete.
Create an LdapModification array with all the LdapModification objects created above.
Call the LdapConnection.Modify method to modify the entry attributes
// C# Library namespace
using Novell.Directory.Ldap;
// Creating an LdapConnection instance
LdapConnection ldapConn= new LdapConnection();
//Connect function will create a socket connection to the server
ldapConn.Connect(ldapHost,ldapPort);
//Bind function will bind the user object Credentials to the server
ldapConn.Bind(userDN,userPasswd);
ArrayList modList = new ArrayList();
String desc = "This object belongs to test user";
// Add a new value to the description attribute
LdapAttribute attribute = new LdapAttribute( "description", desc);
modList.Add( new LdapModification(LdapModification.ADD, attribute));
//Replace the existing email with the new email value
attribute = new LdapAttribute( "mail", "James_Smith@Acme.com");
modList.Add( new LdapModification(LdapModification.REPLACE,
attribute));
LdapModification[] mods = new LdapModification[modList.Count];
Type mtype=Type.GetType("Novell.Directory.LdapModification");
mods = (LdapModification[])modList.ToArray(typeof(LdapModification));
//Modify the entry in the directory
ldapConn.Modify ( dn, mods );