static void Main(string[] args)
        {
            string             Path     = "LDAP://dsaddom.nttest.microsoft.com/CN=Greg MacBeth,CN=Users,DC=dsaddom,DC=nttest,DC=MICROSOFT,DC=COM";
            string             User     = "******";
            string             Password = "******";
            DirectoryEntry     Entry    = new DirectoryEntry(Path, User, Password);
            AccessControlEntry newAce   = new AccessControlEntryClass();


            //Read the SecurityDescriptor
            SecurityDescriptor sd  = (SecurityDescriptor)Entry.Properties["ntSecurityDescriptor"].Value;
            AccessControlList  acl = (AccessControlList)sd.DiscretionaryAcl;

            foreach (AccessControlEntry ace in (IEnumerable)acl)
            {
                Console.WriteLine("Trustee: {0}", ace.Trustee);
                Console.WriteLine("AccessMask: {0}", ace.AccessMask);
                Console.WriteLine("Access Type: {0}", ace.AceType);
            }

            //Modify the SecurityDescriptor
            newAce.Trustee    = "Jim";
            newAce.AccessMask = -1;
            newAce.AceType    = 0;
            acl.AddAce(newAce);
            sd.DiscretionaryAcl = acl;
            Entry.Properties["ntSecurityDescriptor"].Value = sd;
            Entry.CommitChanges();
        }