/// <summary> /// Extracts a list of ACEs from a SDDL string. /// </summary> public static IList <AccessControlEntity> Parse(string sddl) { List <AccessControlEntity> entities = new List <AccessControlEntity>(); if (!sddl.StartsWith("D:", StringComparison.Ordinal)) { throw new ArgumentException(Utils.Format("Could not parse SDDL string: {0}", sddl)); } sddl = sddl.Substring(2, sddl.Length - 2); string[] aces = sddl.Split('(', ')'); for (int ii = 0; ii < aces.Length; ii++) { if (String.IsNullOrEmpty(aces[ii])) { continue; } AccessControlEntity entity = new AccessControlEntity(); entity.Initialize(aces[ii]); entities.Add(entity); } return(entities); }
/// <summary> /// Extracts a list of ACEs from a SDDL string. /// </summary> public static IList<AccessControlEntity> Parse(string sddl) { List<AccessControlEntity> entities = new List<AccessControlEntity>(); if (!sddl.StartsWith("D:", StringComparison.Ordinal)) { throw new ArgumentException(Utils.Format("Could not parse SDDL string: {0}", sddl)); } sddl = sddl.Substring(2, sddl.Length-2); string[] aces = sddl.Split('(', ')'); for (int ii = 0; ii < aces.Length; ii++) { if (String.IsNullOrEmpty(aces[ii])) { continue; } AccessControlEntity entity = new AccessControlEntity(); entity.Initialize(aces[ii]); entities.Add(entity); } return entities; }