// // 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); }
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); }
internal PermissionSet(string xml) : this() { state = PermissionState.None; if (xml != null) { SecurityElement se = SecurityElement.FromString(xml); FromXml(se); } }
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); }
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); }
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); }
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); }
// 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)); }