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);
        }
コード例 #3
0
    // </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);
        }
    }
コード例 #4
0
        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");
        }