Exemple #1
0
        internal static PermissionSet Decode(byte[] encodedPermissions)
        {
            if (encodedPermissions == null || encodedPermissions.Length < 1)
            {
                throw new SecurityException("Invalid metadata format.");
            }
            byte b = encodedPermissions[0];

            if (b == 46)
            {
                return(PermissionSet.CreateFromBinaryFormat(encodedPermissions));
            }
            if (b != 60)
            {
                throw new SecurityException(Locale.GetText("Unknown metadata format."));
            }
            string @string = Encoding.Unicode.GetString(encodedPermissions);

            return(new PermissionSet(@string));
        }
Exemple #2
0
        internal static PermissionSet Decode(byte[] encodedPermissions)
        {
            if ((encodedPermissions == null) || (encodedPermissions.Length < 1))
            {
                throw new SecurityException("Invalid metadata format.");
            }

            switch (encodedPermissions [0])
            {
            case 60:
                // Fx 1.0/1.1 declarative security permissions metadata is in Unicode-encoded XML
                string xml = Encoding.Unicode.GetString(encodedPermissions);
                return(new PermissionSet(xml));

            case 0x2E:
                // Fx 2.0 are encoded "somewhat, but not enough, like" custom attributes
                // note: we still support the older format!
                return(PermissionSet.CreateFromBinaryFormat(encodedPermissions));

            default:
                throw new SecurityException(Locale.GetText("Unknown metadata format."));
            }
        }