public void Union_Self()
        {
            UrlIdentityPermission uip   = new UrlIdentityPermission(PermissionState.None);
            UrlIdentityPermission union = (UrlIdentityPermission)uip.Union(uip);

            Assert.IsNull(union, "None U None");
            foreach (string s in GoodUrls)
            {
                uip.Url = s;
                union   = (UrlIdentityPermission)uip.Union(uip);
                // Fx 1.0/1.1 adds a '/' at the end, while 2.0 keeps the original format
                // so we only compare the start of the url
                Assert.IsTrue(union.Url.StartsWith(uip.Url), s);
            }
        }
Пример #2
0
    // </Snippet2>
    // <Snippet3>
    // Union creates a new permission that is the union of the current permission
    // and the specified permission.
    private static void UnionDemo()
    {
        UrlIdentityPermission permIdPerm1 = new UrlIdentityPermission("http://www.fourthcoffee.com/process/");
        UrlIdentityPermission permIdPerm2 = new UrlIdentityPermission("http://www.fourthcoffee.com/*");
        UrlIdentityPermission p3          = (UrlIdentityPermission)permIdPerm1.Union(permIdPerm2);

        try
        {
            if (p3 != null)
            {
                Console.WriteLine("The union of " + permIdPerm1.Url +
                                  " and \n\t" + permIdPerm2.Url + " is \n\t"
                                  + p3.Url + "\n");
            }
            else
            {
                Console.WriteLine("The union of " + permIdPerm1.Url +
                                  " and \n\t" + permIdPerm2.Url + " is null.\n");
            }
        }
        catch (SystemException e)
        {
            Console.WriteLine("The union of " + permIdPerm1.Url +
                              " and \n\t" + permIdPerm2.Url + " failed.");

            Console.WriteLine(e.Message);
        }
    }
        public void Union_None()
        {
            // Union with none is same
            UrlIdentityPermission uip1 = new UrlIdentityPermission(PermissionState.None);
            UrlIdentityPermission uip2 = new UrlIdentityPermission(PermissionState.None);

            // a. source (this) is none
            foreach (string s in GoodUrls)
            {
                uip1.Url = s;
                UrlIdentityPermission union = (UrlIdentityPermission)uip1.Union(uip2);
                // Fx 1.0/1.1 adds a '/' at the end, while 2.0 keeps the original format
                // so we only compare the start of the url
                Assert.IsTrue(union.Url.StartsWith(uip1.Url), s);
            }
            uip1 = new UrlIdentityPermission(PermissionState.None);
            // b. destination (target) is none
            foreach (string s in GoodUrls)
            {
                uip2.Url = s;
                UrlIdentityPermission union = (UrlIdentityPermission)uip2.Union(uip1);
                // Fx 1.0/1.1 adds a '/' at the end, while 2.0 keeps the original format
                // so we only compare the start of the url
                Assert.IsTrue(union.Url.StartsWith(uip2.Url), s);
            }
        }
Пример #4
0
        public static void UrlIdentityPermissionCallMethods()
        {
            UrlIdentityPermission uip  = new UrlIdentityPermission(new PermissionState());
            UrlIdentityPermission uip2 = new UrlIdentityPermission("testsite");
            IPermission           ip   = uip.Copy();
            IPermission           ip2  = uip.Intersect(ip);
            bool testbool = uip.IsSubsetOf(ip);

            ip2 = uip.Union(ip);
            SecurityElement se = new SecurityElement("");

            uip.FromXml(se);
            se = uip.ToXml();
        }
        public void Union_Null()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);

            // Union with null is a simple copy
            foreach (string s in GoodUrls)
            {
                uip.Url = s;
                UrlIdentityPermission union = (UrlIdentityPermission)uip.Union(null);
                // Fx 1.0/1.1 adds a '/' at the end, while 2.0 keeps the original format
                // so we only compare the start of the url
                Assert.IsTrue(union.Url.StartsWith(uip.Url), s);
            }
        }
        public void Union_Different()
        {
            UrlIdentityPermission uip1   = new UrlIdentityPermission(GoodUrls [0]);
            UrlIdentityPermission uip2   = new UrlIdentityPermission(GoodUrls [1]);
            UrlIdentityPermission result = (UrlIdentityPermission)uip1.Union(uip2);

            Assert.IsNotNull(result, "Mono U Novell");
            // new XML format is used to contain more than one site
            SecurityElement se = result.ToXml();

            Assert.AreEqual(2, se.Children.Count, "Childs");
            Assert.AreEqual(GoodUrls [0], (se.Children [0] as SecurityElement).Attribute("Url"), "Url#1");
            Assert.AreEqual(GoodUrls [1], (se.Children [1] as SecurityElement).Attribute("Url"), "Url#2");
            // strangely it is still versioned as 'version="1"'.
            Assert.AreEqual("1", se.Attribute("version"), "Version");
        }
Пример #7
0
 public static void UrlIdentityPermissionCallMethods()
 {
     UrlIdentityPermission uip = new UrlIdentityPermission(new PermissionState());
     UrlIdentityPermission uip2 = new UrlIdentityPermission("testsite");
     IPermission ip = uip.Copy();
     IPermission ip2 = uip.Intersect(ip);
     bool testbool = uip.IsSubsetOf(ip);
     ip2 = uip.Union(ip);
     SecurityElement se = new SecurityElement("");
     uip.FromXml(se);
     se = uip.ToXml();
 }