Beispiel #1
0
        internal static RawAcl ParseSddlForm(string sddlForm,
                                             bool isDacl,
                                             ref ControlFlags sdFlags,
                                             ref int pos)
        {
            ParseFlags(sddlForm, isDacl, ref sdFlags, ref pos);

            byte revision          = GenericAcl.AclRevision;
            List <GenericAce> aces = new List <GenericAce>();

            while (pos < sddlForm.Length && sddlForm[pos] == '(')
            {
                GenericAce ace = GenericAce.CreateFromSddlForm(
                    sddlForm, ref pos);
                if ((ace as ObjectAce) != null)
                {
                    revision = GenericAcl.AclRevisionDS;
                }
                aces.Add(ace);
            }


            return(new RawAcl(revision, aces));
        }