Beispiel #1
0
        public void ModifyObject(string basedn, LdapMod[] attrs)
        {
            IntPtr basednPtr = IntPtr.Zero;

            basednPtr = Marshal.StringToHGlobalAnsi(basedn);

            IntPtr[] umattrs = new IntPtr[attrs.Length + 1];
            for (int i = 0; i < attrs.Length; i++)
            {
                umattrs[i] = attrs[i].convertToUnmanaged();
            }

            umattrs[attrs.Length] = IntPtr.Zero; /* NULL Termination */

            var returnError = LdapClientLibrary.ldap_modify_ext_s(this._connection, basednPtr, umattrs, null, null);

            for (int i = 0; i < attrs.Length; i++)
            {
                attrs[i].Free();
                Marshal.FreeHGlobal(umattrs[i]);
            }

            Marshal.FreeHGlobal(basednPtr);

            ErrorCheckerHelper.Validate((int)returnError);
        }