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); }
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; }