public string GetSddlForm(AccessControlSections sections)
        {
            StringBuilder result = new StringBuilder();

            if (Owner != null && sections.HasFlag(AccessControlSections.Owner))
            {
                result.AppendFormat(CultureInfo.InvariantCulture, "O:{0}", Owner.Value.GetSddlForm());
            }

            if (Group != null && sections.HasFlag(AccessControlSections.Group))
            {
                result.AppendFormat(CultureInfo.InvariantCulture, "G:{0}", Group.Value.GetSddlForm());
            }

            if (sections.HasFlag(AccessControlSections.Access) && this.controlFlags.HasFlag(SECURITY_DESCRIPTOR_Control.DACLPresent))
            {
                result.AppendFormat(CultureInfo.InvariantCulture, "D:{0}", dacl.GetSddlForm(controlFlags, true));
            }

            if (sections.HasFlag(AccessControlSections.Audit) && this.controlFlags.HasFlag(SECURITY_DESCRIPTOR_Control.SACLPresent))
            {
                result.AppendFormat(CultureInfo.InvariantCulture, "S:{0}", sacl.GetSddlForm(controlFlags, false));
            }

            return(result.ToString());
        }