/// <summary>Creates an XML encoding of the security object and its current state.</summary> /// <returns>An XML encoding of the security object, including any state information.</returns> /// <PermissionSet> /// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="ControlEvidence" /> /// </PermissionSet> public SecurityElement ToXml() { Hashtable hashtable = new Hashtable(); if (this.full_trust_assemblies.Count > 0 && !hashtable.Contains("StrongNameMembershipCondition")) { hashtable.Add("StrongNameMembershipCondition", typeof(StrongNameMembershipCondition).FullName); } SecurityElement securityElement = new SecurityElement("NamedPermissionSets"); foreach (object obj in this.named_permission_sets) { NamedPermissionSet namedPermissionSet = (NamedPermissionSet)obj; SecurityElement securityElement2 = namedPermissionSet.ToXml(); object key = securityElement2.Attributes["class"]; if (!hashtable.Contains(key)) { hashtable.Add(key, namedPermissionSet.GetType().FullName); } securityElement.AddChild(securityElement2); } SecurityElement securityElement3 = new SecurityElement("FullTrustAssemblies"); foreach (object obj2 in this.full_trust_assemblies) { StrongNameMembershipCondition strongNameMembershipCondition = (StrongNameMembershipCondition)obj2; securityElement3.AddChild(strongNameMembershipCondition.ToXml(this)); } SecurityElement securityElement4 = new SecurityElement("SecurityClasses"); if (hashtable.Count > 0) { foreach (object obj3 in hashtable) { DictionaryEntry dictionaryEntry = (DictionaryEntry)obj3; SecurityElement securityElement5 = new SecurityElement("SecurityClass"); securityElement5.AddAttribute("Name", (string)dictionaryEntry.Key); securityElement5.AddAttribute("Description", (string)dictionaryEntry.Value); securityElement4.AddChild(securityElement5); } } SecurityElement securityElement6 = new SecurityElement(typeof(PolicyLevel).Name); securityElement6.AddAttribute("version", "1"); securityElement6.AddChild(securityElement4); securityElement6.AddChild(securityElement); if (this.root_code_group != null) { securityElement6.AddChild(this.root_code_group.ToXml(this)); } securityElement6.AddChild(securityElement3); return(securityElement6); }
public void ToXml_PolicyLevel () { StrongNameMembershipCondition snmc = new StrongNameMembershipCondition (blob, name, version); SecurityElement se = snmc.ToXml (); string s = snmc.ToXml ().ToString (); // is it accepted for all policy levels ? IEnumerator e = SecurityManager.PolicyHierarchy (); while (e.MoveNext ()) { PolicyLevel pl = e.Current as PolicyLevel; StrongNameMembershipCondition spl = new StrongNameMembershipCondition (blob, name, version); spl.FromXml (se, pl); Assert.AreEqual (s, spl.ToXml (pl).ToString (), "ToXml(PolicyLevel='" + pl.Label + "')"); } // yes! }
public void FromXml_NoVersion () { StrongNameMembershipCondition snmc = new StrongNameMembershipCondition (blob, name, version); SecurityElement se = snmc.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("class", se.Attribute ("class")); snmc.FromXml (w); }
public void ToXml_Null () { StrongNameMembershipCondition snmc = new StrongNameMembershipCondition (blob, name, version); // no ArgumentNullException here SecurityElement se = snmc.ToXml (null); Assert.IsNotNull (se, "ToXml(null)"); }
public void FromXml_NoClass () { StrongNameMembershipCondition snmc = new StrongNameMembershipCondition (blob, name, version); SecurityElement se = snmc.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("version", se.Attribute ("version")); snmc.FromXml (w); // doesn't even care of the class attribute presence }
public void FromXml_InvalidClass () { StrongNameMembershipCondition snmc = new StrongNameMembershipCondition (blob, name, version); SecurityElement se = snmc.ToXml (); se.Attributes ["class"] = "Hello world"; snmc.FromXml (se); }
public void FromXml_InvalidTag () { StrongNameMembershipCondition snmc = new StrongNameMembershipCondition (blob, name, version); SecurityElement se = snmc.ToXml (); se.Tag = "IMonoship"; snmc.FromXml (se); }
private void Common (StrongNameMembershipCondition snmc) { Assert.IsFalse (snmc.Check (allEmpty), "Check(allEmpty)"); Assert.IsFalse (snmc.Check (hostOther), "Check(hostOther)"); Assert.IsFalse (snmc.Check (assemblyEcmaCorlibVersion), "Check(assemblyEcmaCorlibVersion)"); Assert.IsFalse (snmc.Check (assemblyEcmaVersion), "Check(assemblyEcmaVersion)"); Assert.IsFalse (snmc.Check (assemblyMsSystemSecurityVersion), "Check(assemblyMsSystemSecurityVersion)"); Assert.IsFalse (snmc.Check (assemblyMsVersion), "Check(assemblyMsVersion)"); Assert.IsFalse (snmc.Check (assemblyOther), "Check(assemblyOther)"); StrongNameMembershipCondition copy = (StrongNameMembershipCondition)snmc.Copy (); Assert.IsTrue (copy.Equals (snmc), "copy.Equals (snmc)"); Assert.IsTrue (snmc.Equals (copy), "snmc.Equals (copy)"); copy.Name = null; copy.Version = null; bool original = ((snmc.Name == null) && (snmc.Version == null)); Assert.AreEqual (original, copy.Equals (snmc), "bad.Equals (snmc)"); Assert.AreEqual (original, snmc.Equals (copy), "snmc.Equals (bad)"); SecurityElement se = snmc.ToXml (); copy.FromXml (se); Assert.AreEqual (snmc.PublicKey, copy.PublicKey, "PublicKey"); Assert.AreEqual (snmc.Name, copy.Name, "Name"); Assert.AreEqual (snmc.Version, copy.Version, "Version"); Assert.AreEqual (snmc.GetHashCode (), copy.GetHashCode (), "GetHashCode ()"); Assert.AreEqual (snmc.ToString (), copy.ToString (), "ToString ()"); Assert.IsTrue (copy.Equals (snmc), "xml.Equals (snmc)"); Assert.IsTrue (snmc.Equals (copy), "snmc.Equals (xml)"); }
public static void StrongNameMembershipConditionCallMethods() { StrongNameMembershipCondition snmc = new StrongNameMembershipCondition(new StrongNamePublicKeyBlob(new byte[1]), "test", new Version(0, 1)); bool check = snmc.Check(new Evidence()); IMembershipCondition obj = snmc.Copy(); check = snmc.Equals(new object()); int hash = snmc.GetHashCode(); string str = snmc.ToString(); SecurityElement se = new SecurityElement(""); PolicyLevel pl = (PolicyLevel)Activator.CreateInstance(typeof(PolicyLevel), true); snmc.FromXml(se); snmc.FromXml(se, pl); se = snmc.ToXml(); se = snmc.ToXml(pl); }