internal CommonAcl(bool isContainer, bool isDS, System.Security.AccessControl.RawAcl rawAcl, bool trusted, bool isDacl) { if (rawAcl == null) { throw new ArgumentNullException("rawAcl"); } this._isContainer = isContainer; this._isDS = isDS; if (trusted) { this._acl = rawAcl; this.RemoveMeaninglessAcesAndFlags(isDacl); } else { this._acl = new System.Security.AccessControl.RawAcl(rawAcl.Revision, rawAcl.Count); for (int i = 0; i < rawAcl.Count; i++) { GenericAce ace = rawAcl[i].Copy(); if (this.InspectAce(ref ace, isDacl)) { this._acl.InsertAce(this._acl.Count, ace); } } } if (this.CanonicalCheck(isDacl)) { this.Canonicalize(true, isDacl); this._isCanonical = true; } else { this._isCanonical = false; } }
internal CommonAcl(bool isContainer, bool isDS, byte revision, int capacity) { this._isContainer = isContainer; this._isDS = isDS; this._acl = new System.Security.AccessControl.RawAcl(revision, capacity); this._isCanonical = true; }