public void Url_Null()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);

            uip.Url = null;
            Assert.AreEqual(String.Empty, uip.Url, "Url");
        }
Esempio n. 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);
            }
        }
        public void Url_LoneStar()
        {
            Url u = new Url("*");

#if NET_2_0
            Assert.AreEqual("*", u.Value, "Value");
            Assert.AreEqual("<System.Security.Policy.Url version=\"1\">" + Environment.NewLine + "<Url>*</Url>" + Environment.NewLine + "</System.Security.Policy.Url>" + Environment.NewLine, u.ToString(), "ToString");
#else
            Assert.AreEqual("file://*", u.Value, "Value");
            Assert.AreEqual("<System.Security.Policy.Url version=\"1\">" + Environment.NewLine + "   <Url>file://*</Url>" + Environment.NewLine + "</System.Security.Policy.Url>" + Environment.NewLine, u.ToString(), "ToString");
#endif
            Url u2 = (Url)u.Copy();
            Assert.AreEqual(u.Value, u2.Value, "Copy.Value");
            Assert.AreEqual(u.GetHashCode(), u2.GetHashCode(), "Copy.GetHashCode");

            UrlIdentityPermission uip = (UrlIdentityPermission)u.CreateIdentityPermission(null);
            Assert.AreEqual(u.Value, uip.Url, "CreateIdentityPermission");

            Assert.IsTrue(u.Equals(u2), "Equals");
            Url u3 = new Url("index.html");
            Assert.IsFalse(u.Equals(u3), "!Equals(*)");

            u2 = new Url("file://*");
            Assert.AreEqual("file://*", u2.Value, "Value-file://*");
            Assert.IsTrue(u.Equals(u2), "Equals-file://*");
        }
        public void IsSubset_Different()
        {
            UrlIdentityPermission uip1 = new UrlIdentityPermission(GoodUrls [0]);
            UrlIdentityPermission uip2 = new UrlIdentityPermission(GoodUrls [1]);

            Assert.IsFalse(uip1.IsSubsetOf(uip2), "Mono subset Novell");
            Assert.IsFalse(uip2.IsSubsetOf(uip1), "Novell subset Mono");
        }
        public void Intersect_Different()
        {
            UrlIdentityPermission uip1   = new UrlIdentityPermission(GoodUrls [0]);
            UrlIdentityPermission uip2   = new UrlIdentityPermission(GoodUrls [1]);
            UrlIdentityPermission result = (UrlIdentityPermission)uip1.Intersect(uip2);

            Assert.IsNull(result, "Mono N Novell");
        }
        public void FromXml_WrongTag()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);
            SecurityElement       se  = uip.ToXml();

            se.Tag = "IMono";
            uip.FromXml(se);
        }
        public void FromXml_WrongTagCase()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);
            SecurityElement       se  = uip.ToXml();

            se.Tag = "IPERMISSION";             // instead of IPermission
            uip.FromXml(se);
        }
        public void FromXml_WrongVersion()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);
            SecurityElement       se  = uip.ToXml();

            se.Attributes.Remove("version");
            se.Attributes.Add("version", "2");
            uip.FromXml(se);
        }
        public void Url()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);

            foreach (string s in GoodUrls)
            {
                uip.Url = s;
                Assert.AreEqual(s, uip.Url, s);
            }
        }
        public void FromXml_NoVersion()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);
            SecurityElement       se  = uip.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", se.Attribute("class"));
            uip.FromXml(w);
        }
        public void IsSubset_Self()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);

            Assert.IsTrue(uip.IsSubsetOf(uip), "None");
            foreach (string s in GoodUrls)
            {
                uip.Url = s;
                Assert.IsTrue(uip.IsSubsetOf(uip), s);
            }
        }
        public void Intersect_Null()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);

            // No intersection with null
            foreach (string s in GoodUrls)
            {
                uip.Url = s;
                Assert.IsNull(uip.Intersect(null), s);
            }
        }
        public void FromXml_NoClass()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);
            SecurityElement       se  = uip.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("version", se.Attribute("version"));
            uip.FromXml(w);
            // doesn't even care of the class attribute presence
        }
        public void IsSubset_Null()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);

            Assert.IsTrue(uip.IsSubsetOf(null), "Empty");
            foreach (string s in GoodUrls)
            {
                uip.Url = s;
                Assert.IsFalse(uip.IsSubsetOf(null), s);
            }
        }
        public void FromXml_WrongClass()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);
            SecurityElement       se  = uip.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", "Wrong" + se.Attribute("class"));
            w.AddAttribute("version", se.Attribute("version"));
            uip.FromXml(w);
            // doesn't care of the class name at that stage
            // anyway the class has already be created so...
        }
Esempio n. 17
0
    //</Snippet4>
    //<Snippet5>
    //Copy creates and returns an identical copy of the current permission.
    private static void CopyDemo()
    {
        UrlIdentityPermission permIdPerm1 = new UrlIdentityPermission("http://www.fourthcoffee.com/process/*");
        //<Snippet7>
        UrlIdentityPermission permIdPerm2 = new UrlIdentityPermission(PermissionState.None);

        //</Snippet7>
        permIdPerm2 = (UrlIdentityPermission)permIdPerm1.Copy();
        if (permIdPerm2 != null)
        {
            Console.WriteLine("The copy succeeded:  " + permIdPerm2.ToString() + " \n");
        }
    }
        public void Copy()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);

            foreach (string s in GoodUrls)
            {
                uip.Url = s;
                UrlIdentityPermission copy = (UrlIdentityPermission)uip.Copy();
                // 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.AreEqual(uip.Url, copy.Url, "Url");
            }
        }
        public void Intersect_Self()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);

            foreach (string s in GoodUrls)
            {
                uip.Url = s;
                UrlIdentityPermission result = (UrlIdentityPermission)uip.Intersect(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(result.Url.StartsWith(uip.Url), s);
            }
        }
Esempio n. 20
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 PermissionStateUnrestricted()
        {
            // In 2.0 Unrestricted are permitted for identity permissions
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.Unrestricted);

            Assert.AreEqual(String.Empty, uip.Url, "Url");
            SecurityElement se = uip.ToXml();

            // only class and version are present
            Assert.AreEqual(3, se.Attributes.Count, "Xml-Attributes");
            Assert.IsNull(se.Children, "Xml-Children");
            // and they aren't equals to None
            Assert.IsFalse(uip.Equals(new UrlIdentityPermission(PermissionState.None)));
        }
        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);
            }
        }
        internal static void GetZoneAndOriginHelper(PermissionSet grantSet, PermissionSet deniedSet, ArrayList zoneList, ArrayList originList)
        {
            ZoneIdentityPermission zone = (ZoneIdentityPermission)grantSet.GetPermission(typeof(ZoneIdentityPermission));
            UrlIdentityPermission  url  = (UrlIdentityPermission)grantSet.GetPermission(typeof(UrlIdentityPermission));

            if (zone != null)
            {
                zoneList.Add(zone.SecurityZone);
            }

            if (url != null)
            {
                originList.Add(url.Url);
            }
        }
        public void PermissionState_None()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);

            // that cause a NullReferenceException before 2.0
            Assert.AreEqual(String.Empty, uip.Url, "Url");
            SecurityElement se = uip.ToXml();

            // only class and version are present
            Assert.AreEqual(2, se.Attributes.Count, "Xml-Attributes");
            Assert.IsNull(se.Children, "Xml-Children");
            UrlIdentityPermission copy = (UrlIdentityPermission)uip.Copy();

            Assert.IsFalse(Object.ReferenceEquals(uip, copy), "ReferenceEquals");
        }
        public void Url()
        {
            UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None);

            foreach (string s in GoodUrls)
            {
                uip.Url = s;
#if NET_2_0
                Assert.AreEqual(s, uip.Url, s);
#else
                // 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
#endif
            }
        }
Esempio n. 27
0
        public void DefaultPermission()
        {
            UrlIdentityPermissionAttribute a = new UrlIdentityPermissionAttribute(SecurityAction.Assert);

            Assert.IsNull(a.Url, "Url");
            // UrlIdentityPermission would throw a ArgumentNullException for a null URL ...
            UrlIdentityPermission perm = (UrlIdentityPermission)a.CreatePermission();

            // ... but this works ...
            Assert.IsNotNull(perm, "CreatePermission(null url)");
            // ... but this doesn't!
            string url = perm.Url;

            Assert.AreEqual(String.Empty, url, "Url-2");
        }
        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");
        }
Esempio n. 29
0
    // </Snippet3>
    // <Snippet4>
    // Intersect creates and returns a new permission that is the intersection of the
    // current permission and the permission specified.
    private static void IntersectDemo()
    {
        UrlIdentityPermission permIdPerm1 = new UrlIdentityPermission("http://www.fourthcoffee.com/process/");
        UrlIdentityPermission permIdPerm2 = new UrlIdentityPermission("http://www.fourthcoffee.com/*");
        UrlIdentityPermission p3          = (UrlIdentityPermission)permIdPerm1.Intersect(permIdPerm2);

        if (p3 != null)
        {
            Console.WriteLine("The intersection of " + permIdPerm1.Url + " and \n\t" +
                              permIdPerm2.Url + " is " + p3.Url + "\n");
        }
        else
        {
            Console.WriteLine("The intersection of " + permIdPerm1.Url +
                              " and \n\t" + permIdPerm2.Url + " is null.\n");
        }
    }
Esempio n. 30
0
    //</Snippet5>
    //<Snippet6>
    // ToXml creates an XML encoding of the permission and its current state; FromXml reconstructs a
    // permission with the specified state from the XML encoding.
    private static void ToFromXmlDemo()
    {
        UrlIdentityPermission permIdPerm1 = new UrlIdentityPermission("http://www.fourthcoffee.com/process/*");
        UrlIdentityPermission permIdPerm2 = new UrlIdentityPermission(PermissionState.None);

        permIdPerm2.FromXml(permIdPerm1.ToXml());
        bool result = permIdPerm2.Equals(permIdPerm1);

        if (result)
        {
            Console.WriteLine("Result of ToFromXml = " + permIdPerm2.ToString());
        }
        else
        {
            Console.WriteLine(permIdPerm2.ToString());
            Console.WriteLine(permIdPerm1.ToString());
        }
    }
Esempio n. 31
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();
 }