コード例 #1
0
 internal static System.Security.AccessControl.AceFlags AceFlagsFromAuditFlags(System.Security.AccessControl.AuditFlags auditFlags)
 {
     System.Security.AccessControl.AceFlags none = System.Security.AccessControl.AceFlags.None;
     if ((auditFlags & System.Security.AccessControl.AuditFlags.Success) != System.Security.AccessControl.AuditFlags.None)
     {
         none = (System.Security.AccessControl.AceFlags)((byte)(none | (System.Security.AccessControl.AceFlags.None | System.Security.AccessControl.AceFlags.SuccessfulAccess)));
     }
     if ((auditFlags & System.Security.AccessControl.AuditFlags.Failure) != System.Security.AccessControl.AuditFlags.None)
     {
         none = (System.Security.AccessControl.AceFlags)((byte)(none | System.Security.AccessControl.AceFlags.FailedAccess));
     }
     if (none == System.Security.AccessControl.AceFlags.None)
     {
         throw new ArgumentException(Environment.GetResourceString("Arg_EnumAtLeastOneFlag"), "auditFlags");
     }
     return(none);
 }
コード例 #2
0
 internal static System.Security.AccessControl.AceFlags AceFlagsFromInheritanceFlags(System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags)
 {
     System.Security.AccessControl.AceFlags none = System.Security.AccessControl.AceFlags.None;
     if ((inheritanceFlags & System.Security.AccessControl.InheritanceFlags.ContainerInherit) != System.Security.AccessControl.InheritanceFlags.None)
     {
         none = (System.Security.AccessControl.AceFlags)((byte)(none | System.Security.AccessControl.AceFlags.ContainerInherit));
     }
     if ((inheritanceFlags & System.Security.AccessControl.InheritanceFlags.ObjectInherit) != System.Security.AccessControl.InheritanceFlags.None)
     {
         none = (System.Security.AccessControl.AceFlags)((byte)(none | (System.Security.AccessControl.AceFlags.None | System.Security.AccessControl.AceFlags.ObjectInherit)));
     }
     if (none != System.Security.AccessControl.AceFlags.None)
     {
         if ((propagationFlags & System.Security.AccessControl.PropagationFlags.NoPropagateInherit) != System.Security.AccessControl.PropagationFlags.None)
         {
             none = (System.Security.AccessControl.AceFlags)((byte)(none | (System.Security.AccessControl.AceFlags.None | System.Security.AccessControl.AceFlags.NoPropagateInherit)));
         }
         if ((propagationFlags & System.Security.AccessControl.PropagationFlags.InheritOnly) != System.Security.AccessControl.PropagationFlags.None)
         {
             none = (System.Security.AccessControl.AceFlags)((byte)(none | System.Security.AccessControl.AceFlags.InheritOnly));
         }
     }
     return(none);
 }
コード例 #3
0
 public FooAttribute(System.Security.AccessControl.AceFlags flags)
 {
 }
コード例 #4
0
        public static GenericAce CreateFromBinaryForm(byte[] binaryForm, int offset)
        {
            GenericAce ace;

            VerifyHeader(binaryForm, offset);
            System.Security.AccessControl.AceType type = (System.Security.AccessControl.AceType)binaryForm[offset];
            switch (type)
            {
            case System.Security.AccessControl.AceType.AccessAllowed:
            case System.Security.AccessControl.AceType.AccessDenied:
            case System.Security.AccessControl.AceType.SystemAudit:
            case System.Security.AccessControl.AceType.SystemAlarm:
            case System.Security.AccessControl.AceType.AccessAllowedCallback:
            case System.Security.AccessControl.AceType.AccessDeniedCallback:
            case System.Security.AccessControl.AceType.SystemAuditCallback:
            case System.Security.AccessControl.AceType.SystemAlarmCallback:
            {
                AceQualifier       qualifier;
                int                num;
                SecurityIdentifier identifier;
                bool               flag;
                byte[]             buffer;
                if (!CommonAce.ParseBinaryForm(binaryForm, offset, out qualifier, out num, out identifier, out flag, out buffer))
                {
                    goto Label_01A8;
                }
                System.Security.AccessControl.AceFlags flags = (System.Security.AccessControl.AceFlags)binaryForm[offset + 1];
                ace = new CommonAce(flags, qualifier, num, identifier, flag, buffer);
                break;
            }

            case System.Security.AccessControl.AceType.AccessAllowedObject:
            case System.Security.AccessControl.AceType.AccessDeniedObject:
            case System.Security.AccessControl.AceType.SystemAuditObject:
            case System.Security.AccessControl.AceType.SystemAlarmObject:
            case System.Security.AccessControl.AceType.AccessAllowedCallbackObject:
            case System.Security.AccessControl.AceType.AccessDeniedCallbackObject:
            case System.Security.AccessControl.AceType.SystemAuditCallbackObject:
            case System.Security.AccessControl.AceType.SystemAlarmCallbackObject:
            {
                AceQualifier       qualifier2;
                int                num2;
                SecurityIdentifier identifier2;
                ObjectAceFlags     flags2;
                Guid               guid;
                Guid               guid2;
                bool               flag2;
                byte[]             buffer2;
                if (!ObjectAce.ParseBinaryForm(binaryForm, offset, out qualifier2, out num2, out identifier2, out flags2, out guid, out guid2, out flag2, out buffer2))
                {
                    goto Label_01A8;
                }
                System.Security.AccessControl.AceFlags aceFlags = (System.Security.AccessControl.AceFlags)binaryForm[offset + 1];
                ace = new ObjectAce(aceFlags, qualifier2, num2, identifier2, flags2, guid, guid2, flag2, buffer2);
                break;
            }

            case System.Security.AccessControl.AceType.AccessAllowedCompound:
            {
                int                num3;
                CompoundAceType    type2;
                SecurityIdentifier identifier3;
                if (!CompoundAce.ParseBinaryForm(binaryForm, offset, out num3, out type2, out identifier3))
                {
                    goto Label_01A8;
                }
                System.Security.AccessControl.AceFlags flags4 = (System.Security.AccessControl.AceFlags)binaryForm[offset + 1];
                ace = new CompoundAce(flags4, num3, type2, identifier3);
                break;
            }

            default:
            {
                System.Security.AccessControl.AceFlags flags5 = (System.Security.AccessControl.AceFlags)binaryForm[offset + 1];
                byte[] opaque = null;
                int    num4   = binaryForm[offset + 2] + (binaryForm[offset + 3] << 8);
                if ((num4 % 4) != 0)
                {
                    goto Label_01A8;
                }
                int num5 = num4 - 4;
                if (num5 > 0)
                {
                    opaque = new byte[num5];
                    for (int i = 0; i < num5; i++)
                    {
                        opaque[i] = binaryForm[((offset + num4) - num5) + i];
                    }
                }
                ace = new CustomAce(type, flags5, opaque);
                break;
            }
            }
            if (((ace is ObjectAce) || ((binaryForm[offset + 2] + (binaryForm[offset + 3] << 8)) == ace.BinaryLength)) && ((!(ace is ObjectAce) || ((binaryForm[offset + 2] + (binaryForm[offset + 3] << 8)) == ace.BinaryLength)) || (((binaryForm[offset + 2] + (binaryForm[offset + 3] << 8)) - 0x20) == ace.BinaryLength)))
            {
                return(ace);
            }
Label_01A8:
            throw new ArgumentException(Environment.GetResourceString("ArgumentException_InvalidAceBinaryForm"), "binaryForm");
        }
コード例 #5
0
 internal GenericAce(System.Security.AccessControl.AceType type, System.Security.AccessControl.AceFlags flags)
 {
     this._type  = type;
     this._flags = flags;
 }
コード例 #6
0
 internal GenericAce(System.Security.AccessControl.AceType type, System.Security.AccessControl.AceFlags flags)
 {
     this._type = type;
     this._flags = flags;
 }