Beispiel #1
0
        public void ApplyPermission(string trustee,
                                    ADS_ACETYPE_ENUM aceType,
                                    ADS_RIGHTS_ENUM accessMask,
                                    ADS_ACEFLAG_ENUM aceFlags,
                                    ADS_FLAGTYPE_ENUM flag
                                    )

        {
            ApplyPermission(trustee, aceType, accessMask, aceFlags, flag, null, null);
        }
        public void AddRights(ADS_RIGHTS_ENUM enumValue)
        {
            ArrayList temp = new ArrayList();

            foreach (string s in this._accessMask)
            {
                temp.Add(s);
            }

            temp.Add(Enum.GetName(typeof(ADS_RIGHTS_ENUM), enumValue));
            this._accessMask = (string[])temp.ToArray(typeof(string));
        }
        private void button1_Click_2(object sender, System.EventArgs e)
        {
            StringBuilder     builder    = new StringBuilder();
            AccessControlList acl        = new AccessControlList(util.SharedEntry);
            string            enumValues = null;

//			for(int	i=0;i<this.lstPermList.CheckedIndices.Count;i++)
//			{
//				PermissionItem o = (PermissionItem)lstPermList.Items[lstPermList.CheckedIndices[i]];
//				Console.Write("");
//			}

            IEnumerator myEnumerator;

            myEnumerator = this.lstPermList.CheckedIndices.GetEnumerator();
            int index;

            while (myEnumerator.MoveNext() != false)
            {
                index = (int)myEnumerator.Current;
                PermissionItem item = (PermissionItem)lstPermList.Items[index];
                builder.Append(item.EnumObject);
                builder.Append(',');
            }


            string          concatValue = builder.ToString().TrimEnd(new Char[] { ',' });
            ADS_RIGHTS_ENUM accessMask  = (ADS_RIGHTS_ENUM)Enum.Parse(typeof(ADS_RIGHTS_ENUM), concatValue);

            acl.ApplyPermission(this.cboTrustees.Text,
                                ADS_ACETYPE_ENUM.ADS_ACETYPE_ACCESS_ALLOWED,
                                accessMask,
                                ADS_ACEFLAG_ENUM.ADS_ACEFLAG_INHERIT_ACE,
                                ADS_FLAGTYPE_ENUM.ADS_FLAG_OBJECT_TYPE_PRESENT);



            acl.CommitChanges();

            LoadSecurity_Click(this, new EventArgs());
        }
Beispiel #4
0
        public void ApplyPermission(string trustee,
                                    ADS_ACETYPE_ENUM aceType,
                                    ADS_RIGHTS_ENUM accessMask,
                                    ADS_ACEFLAG_ENUM aceFlags,
                                    ADS_FLAGTYPE_ENUM flag,
                                    DirectoryEntry objectType,
                                    DirectoryEntry inheritedObject)

        {
            ActiveDs.AccessControlEntryClass ace = new AccessControlEntryClass();
            ace.AccessMask = (int)accessMask;
            ace.Flags      = (int)Enum.Parse(typeof(ActiveDs.ADS_FLAGTYPE_ENUM), Enum.GetName(typeof(ADS_FLAGTYPE_ENUM), flag));
            ace.AceFlags   = (int)Enum.Parse(typeof(ActiveDs.ADS_ACEFLAG_ENUM), Enum.GetName(typeof(ADS_ACEFLAG_ENUM), aceFlags));
            ace.AceType    = (int)Enum.Parse(typeof(ActiveDs.ADS_ACETYPE_ENUM), Enum.GetName(typeof(ADS_ACETYPE_ENUM), aceType));

            ace.Trustee = trustee;

            this._accessControlList.AddAce(ace);
            _securityDescriptor.DiscretionaryAcl = this._accessControlList;
            this.CommitChanges();
        }