/// <summary> Asynchronously renames an existing entry in the directory, using the /// specified constraints and possibily repositioning the entry in the /// directory. /// /// </summary> /// <param name="dn"> The current distinguished name of the entry. /// /// </param> /// <param name="newRdn"> The new relative distinguished name for the entry. /// /// </param> /// <param name="newParentdn"> The distinguished name of an existing entry which /// is to be the new parent of the entry. /// /// </param> /// <param name="deleteOldRdn"> If true, the old name is not retained as an /// attribute value. If false, the old name is /// retained as an attribute value. /// /// </param> /// <param name="queue"> The queue for messages returned from a server in /// response to this request. If it is null, a /// queue object is created internally. /// /// </param> /// <param name="cons"> The constraints specific to the operation. /// /// </param> /// <exception> LdapException A general exception which includes an error /// message and an Ldap error code. /// </exception> public virtual LdapResponseQueue Rename(System.String dn, System.String newRdn, System.String newParentdn, bool deleteOldRdn, LdapResponseQueue queue, LdapConstraints cons) { if ((System.Object) dn == null || (System.Object) newRdn == null) { // Invalid DN or RDN parameter throw new System.ArgumentException(ExceptionMessages.RDN_PARAM_ERROR); } if (cons == null) cons = defSearchCons; LdapMessage msg = new LdapModifyDNRequest(dn, newRdn, newParentdn, deleteOldRdn, cons.getControls()); return SendRequestToServer(msg, cons.TimeLimit, queue, null); }