public void Union() { ZoneIdentityPermission a = new ZoneIdentityPermission(SecurityZone.Trusted); ZoneIdentityPermission z = (ZoneIdentityPermission)a.Union(null); Assert.IsTrue(Same(a, z), "Trusted+null"); Assert.IsFalse(Object.ReferenceEquals(a, z), "!ReferenceEquals1"); z = (ZoneIdentityPermission)a.Union(new ZoneIdentityPermission(PermissionState.None)); Assert.IsTrue(Same(a, z), "Trusted+PS.None"); Assert.IsFalse(Object.ReferenceEquals(a, z), "!ReferenceEquals2"); // note: can't be tested with PermissionState.Unrestricted ZoneIdentityPermission n = new ZoneIdentityPermission(SecurityZone.NoZone); z = (ZoneIdentityPermission)a.Union(n); Assert.IsTrue(Same(a, z), "Trusted+NoZone"); Assert.IsFalse(Object.ReferenceEquals(a, z), "!ReferenceEquals3"); z = (ZoneIdentityPermission)n.Union(a); Assert.IsTrue(Same(a, z), "NoZone+Trusted"); Assert.IsFalse(Object.ReferenceEquals(a, z), "!ReferenceEquals4"); }
public void Union_DifferentPermissions() { ZoneIdentityPermission a = new ZoneIdentityPermission(SecurityZone.Trusted); SecurityPermission b = new SecurityPermission(PermissionState.None); a.Union(b); }
// </Snippet2> // <Snippet3> // Union creates a new permission that is the union of the current permission // and the specified permission. private static void UnionDemo() { ZoneIdentityPermission zoneIdPerm1 = new ZoneIdentityPermission(SecurityZone.Intranet); ZoneIdentityPermission zoneIdPerm2 = new ZoneIdentityPermission(SecurityZone.MyComputer); ZoneIdentityPermission p3 = (ZoneIdentityPermission)zoneIdPerm1.Union(zoneIdPerm2); try { if (p3 != null) { Console.WriteLine("The union of " + zoneIdPerm1.SecurityZone.ToString() + " and \n\t" + zoneIdPerm2.SecurityZone.ToString() + " is \n\t" + p3.SecurityZone.ToString() + "\n"); } else { Console.WriteLine("The union of " + zoneIdPerm1.SecurityZone.ToString() + " and \n\t" + zoneIdPerm2.SecurityZone.ToString() + " is null.\n"); } } catch (SystemException e) { Console.WriteLine("The union of " + zoneIdPerm1.SecurityZone.ToString() + " and \n\t" + zoneIdPerm2.SecurityZone.ToString() + " failed."); Console.WriteLine(e.Message); } }
public void Union_DifferentIdentities() { ZoneIdentityPermission a = new ZoneIdentityPermission(SecurityZone.Trusted); ZoneIdentityPermission b = new ZoneIdentityPermission(SecurityZone.Untrusted); IPermission result = a.Union(b); Assert.IsNotNull(result, "Union"); // new XML format is used to contain more than one site SecurityElement se = result.ToXml(); Assert.AreEqual(2, se.Children.Count, "Childs"); Assert.AreEqual(a.SecurityZone.ToString(), (se.Children [0] as SecurityElement).Attribute("Zone"), "Zone#1"); Assert.AreEqual(b.SecurityZone.ToString(), (se.Children [1] as SecurityElement).Attribute("Zone"), "Zone#2"); // strangely it is still versioned as 'version="1"'. Assert.AreEqual("1", se.Attribute("version"), "Version"); }