/// <summary> /// Set the security descriptor for the control. /// </summary> /// <param name="security_descriptor">Security descriptor to view.</param> /// <param name="access_type">The enum type for the view.</param> /// <param name="mapping">Generic mapping for the type.</param> /// <param name="valid_access">The valid bit mask for access for this type.</param> /// <param name="is_container">True to indicate this object is a container.</param> public void SetSecurityDescriptor(SecurityDescriptor security_descriptor, Type access_type, GenericMapping mapping, AccessMask valid_access, bool is_container) { AddAclTab(tabPageDACL, aclViewerControlDacl, security_descriptor.Dacl, access_type, mapping, valid_access, is_container); AddAclTab(tabPageSACL, aclViewerControlSacl, security_descriptor.Sacl, access_type, mapping, valid_access, is_container); SetSidLabel(lblOwnerValue, security_descriptor.Owner); SetSidLabel(lblGroupValue, security_descriptor.Group); Ace label = security_descriptor.GetMandatoryLabel(); if (label != null) { lblIntegrityValue.Text = $"{NtSecurity.GetIntegrityLevel(label.Sid)} ({label.Mask.ToMandatoryLabelPolicy()})"; } else { lblIntegrityValue.Text = "N/A"; } }