Example #1
0
        public static Acl FromSddl(string sddl)
        {
            Acl newAcl = new Acl();

            string[] aceStrings = sddl.Split(new char[] { '(', ')' });

            // it's split on ( and ), so we have blanks every other item
            for (int i = 1; i < aceStrings.Length; i++)
            {
                if ((i % 2) > 0)
                {
                    newAcl._acl.Add(Ace.FromSddl(aceStrings[i]));
                }
            }

            return(newAcl);
        }
Example #2
0
        public static Ace FromSddl(string sddl)
        {
            string[] tokens = sddl.Split(';');

            if (tokens.Length != 6)
            {
                throw new ArgumentException("Invalid SDDL string.  Too many or too few tokens.", "sddl");
            }

            string permString = tokens[2];

            string stringSid = tokens[5];

            Ace ace = new Ace();

            switch (permString)
            {
            case "GA":
                ace._permission = UrlPermission.All;
                break;

            case "GX":
                ace._permission = UrlPermission.Registration;
                break;

            case "GW":
                ace._permission = UrlPermission.Delegation;
                break;

            default:
                ace._permission = UrlPermission.Other;
                ace._otherPerm  = permString;
                break;
            }

            ace._accountNameMapped = DecodeSid(stringSid, out ace._user);

            return(ace);
        }
 internal Acl(Ace initialAce)
 {
     this._acl.Add(initialAce);
 }
        internal static Ace FromSddl(string sddl)
        {
            string[] tokens = sddl.Split(';');

            if(tokens.Length != 6)
                throw new ArgumentException("Invalid SDDL string.  Too many or too few tokens.", "sddl");

            string permString = tokens[2];

            string stringSid = tokens[5];

            Ace ace = new Ace();

            switch(permString)
            {
                case "GA":
                    ace._permission = UrlPermission.All;
                    break;

                case "GX":
                    ace._permission = UrlPermission.Registration;
                    break;

                case "GW":
                    ace._permission = UrlPermission.Delegation;
                    break;

                default:
                    ace._permission = UrlPermission.Other;
                    ace._otherPerm = permString;
                    break;
            }

            ace._accountNameMapped = DecodeSid(stringSid, out ace._user);

            return ace;
        }