FromString() public static method

public static FromString ( string xml ) : SecurityElement
xml string
return SecurityElement
Beispiel #1
0
        //
        // Utility methods to construct the permission set objects from the well known XML and any permission
        // set extensions if necessary
        //

        private static NamedPermissionSet GetOrDeserializeExtendablePermissionSet(ref NamedPermissionSet permissionSet,
                                                                                  string permissionSetXml
#if FEATURE_CAS_POLICY
                                                                                  , string extensionXml
#endif // FEATURE_CAS_POLICY
                                                                                  )
        {
            Contract.Requires(!String.IsNullOrEmpty(permissionSetXml));
#if FEATURE_CAS_POLICY
            Contract.Requires(!String.IsNullOrEmpty(extensionXml));
#endif // FEATURE_CAS_POLICY

            if (permissionSet == null)
            {
#if FEATURE_CAS_POLICY
                SecurityElement    securityElement           = SecurityElement.FromString(permissionSetXml);
                NamedPermissionSet deserializedPermissionSet = new NamedPermissionSet(securityElement);

                PermissionSet extensions = GetPermissionSetExtensions(extensionXml);
                deserializedPermissionSet.InplaceUnion(extensions);

                permissionSet = deserializedPermissionSet;
#endif // FEATURE_CAS_POLICY
            }

            return(permissionSet.Copy() as NamedPermissionSet);
        }
Beispiel #2
0
 private static NamedPermissionSet GetOrDeserializePermissionSet(ref NamedPermissionSet permissionSet, string permissionSetXml)
 {
     if (permissionSet == null)
     {
         NamedPermissionSet namedPermissionSet = new NamedPermissionSet(SecurityElement.FromString(permissionSetXml));
         permissionSet = namedPermissionSet;
     }
     return(permissionSet.Copy() as NamedPermissionSet);
 }
Beispiel #3
0
 internal PermissionSet(string xml)
     : this()
 {
     state = PermissionState.None;
     if (xml != null)
     {
         SecurityElement se = SecurityElement.FromString(xml);
         FromXml(se);
     }
 }
Beispiel #4
0
        private static PermissionSet GetPermissionSetExtensions(string extensionXml)
        {
            SecurityElement permissionSetXml = SecurityElement.FromString(extensionXml);

            if (XMLUtil.GetClassFromElement((SecurityElement)permissionSetXml.Children[0], true) != (Type)null)
            {
                return((PermissionSet) new NamedPermissionSet(permissionSetXml));
            }
            return((PermissionSet)null);
        }
        // Token: 0x06001C33 RID: 7219 RVA: 0x00060F28 File Offset: 0x0005F128
        private static PermissionSet GetPermissionSetExtensions(string extensionXml)
        {
            SecurityElement securityElement = SecurityElement.FromString(extensionXml);
            SecurityElement el = (SecurityElement)securityElement.Children[0];

            if (XMLUtil.GetClassFromElement(el, true) != null)
            {
                return(new NamedPermissionSet(securityElement));
            }
            return(null);
        }
Beispiel #6
0
 private static NamedPermissionSet GetOrDeserializeExtendablePermissionSet(ref NamedPermissionSet permissionSet, string permissionSetXml, string extensionXml)
 {
     if (permissionSet == null)
     {
         NamedPermissionSet namedPermissionSet      = new NamedPermissionSet(SecurityElement.FromString(permissionSetXml));
         PermissionSet      permissionSetExtensions = BuiltInPermissionSets.GetPermissionSetExtensions(extensionXml);
         namedPermissionSet.InplaceUnion(permissionSetExtensions);
         permissionSet = namedPermissionSet;
     }
     return(permissionSet.Copy() as NamedPermissionSet);
 }
Beispiel #7
0
        private static NamedPermissionSet GetOrDeserializePermissionSet(ref NamedPermissionSet permissionSet,
                                                                        string permissionSetXml)
        {
            Contract.Assert(!String.IsNullOrEmpty(permissionSetXml));

#if FEATURE_CAS_POLICY
            if (permissionSet == null)
            {
                SecurityElement    securityElement           = SecurityElement.FromString(permissionSetXml);
                NamedPermissionSet deserializedPermissionSet = new NamedPermissionSet(securityElement);

                permissionSet = deserializedPermissionSet;
            }
#endif // FEATURE_CAS_POLICY

            return(permissionSet.Copy() as NamedPermissionSet);
        }
Beispiel #8
0
        private static PermissionSet GetPermissionSetExtensions(string extensionXml)
        {
            Contract.Requires(!String.IsNullOrEmpty(extensionXml));

            SecurityElement se = SecurityElement.FromString(extensionXml);

            // Return the permission set extension only if WPF is in the present framework profile.
            // XMLUtil.GetClassFromElement() helps do the quickest check, with no exception thrown and
            // minimal parsing.
            SecurityElement firstPermission = (SecurityElement)se.Children[0];

            if (System.Security.Util.XMLUtil.GetClassFromElement(firstPermission, /*ignoreTypeLoadFailures*/ true) != null)
            {
                PermissionSet extensions = new NamedPermissionSet(se);
                return(extensions);
            }

            return(null);
        }
Beispiel #9
0
        // FIXME little documentation in Fx 2.0 beta 1
        public static byte[] ConvertPermissionSet(string inFormat, byte[] inData, string outFormat)
        {
            if (inFormat == null)
            {
                throw new ArgumentNullException("inFormat");
            }
            if (outFormat == null)
            {
                throw new ArgumentNullException("outFormat");
            }
            if (inData == null)
            {
                return(null);
            }

            if (inFormat == outFormat)
            {
                return(inData);
            }

            PermissionSet ps = null;

            if (inFormat == "BINARY")
            {
                if (outFormat.StartsWith("XML"))
                {
                    using (MemoryStream ms = new MemoryStream(inData)) {
                        BinaryFormatter formatter = new BinaryFormatter();
                        ps = (PermissionSet)formatter.Deserialize(ms);
                        ms.Close();
                    }
                    string xml = ps.ToString();
                    switch (outFormat)
                    {
                    case "XML":
                    case "XMLASCII":
                        return(Encoding.ASCII.GetBytes(xml));

                    case "XMLUNICODE":
                        return(Encoding.Unicode.GetBytes(xml));
                    }
                }
            }
            else if (inFormat.StartsWith("XML"))
            {
                if (outFormat == "BINARY")
                {
                    string xml = null;
                    switch (inFormat)
                    {
                    case "XML":
                    case "XMLASCII":
                        xml = Encoding.ASCII.GetString(inData);
                        break;

                    case "XMLUNICODE":
                        xml = Encoding.Unicode.GetString(inData);
                        break;
                    }
                    if (xml != null)
                    {
                        ps = new PermissionSet(PermissionState.None);
                        ps.FromXml(SecurityElement.FromString(xml));

                        MemoryStream    ms        = new MemoryStream();
                        BinaryFormatter formatter = new BinaryFormatter();
                        formatter.Serialize(ms, ps);
                        ms.Close();
                        return(ms.ToArray());
                    }
                }
                else if (outFormat.StartsWith("XML"))
                {
                    string msg = String.Format(Locale.GetText("Can't convert from {0} to {1}"), inFormat, outFormat);
#if NET_2_0
                    throw new XmlSyntaxException(msg);
#else
                    throw new ArgumentException(msg);
#endif
                }
            }
            else
            {
                // unknown inFormat, returns null
                return(null);
            }
            // unknown outFormat, throw
            throw new SerializationException(String.Format(Locale.GetText("Unknown output format {0}."), outFormat));
        }