Inheritance: System.Security.CodeAccessPermission, IUnrestrictedPermission
		public void ConstructorState_Deny_Unrestricted ()
		{
			AspNetHostingPermission p = new AspNetHostingPermission (PermissionState.None);
			Assert.AreEqual (AspNetHostingPermissionLevel.None, p.Level, "Level");
			Assert.IsFalse (p.IsUnrestricted (), "IsUnrestricted");
			CommonTests (p);
		}
		public void ConstructorLevel_Deny_Unrestricted ()
		{
			AspNetHostingPermission p = new AspNetHostingPermission (AspNetHostingPermissionLevel.Unrestricted);
			Assert.AreEqual (AspNetHostingPermissionLevel.Unrestricted, p.Level, "Level");
			Assert.IsTrue (p.IsUnrestricted (), "IsUnrestricted");
			CommonTests (p);
		}
Exemple #3
0
        public override bool IsSubsetOf(IPermission target)
        {
            AspNetHostingPermission anhp = Cast(target);

            if (anhp == null)
            {
                return(IsEmpty());
            }
            return(_level <= anhp._level);
        }
Exemple #4
0
        public override IPermission Union(IPermission target)
        {
            AspNetHostingPermission anhp = Cast(target);

            if (anhp == null)
            {
                return(Copy());
            }
            return(new AspNetHostingPermission((_level > anhp.Level) ? _level : anhp.Level));
        }
		private void CommonTests (AspNetHostingPermission p)
		{
			Assert.IsNotNull (p.Copy (), "Copy");
			SecurityElement se = p.ToXml ();
			Assert.IsNotNull (se, "ToXml");
			p.FromXml (se);
			Assert.IsNotNull (p.Intersect (p), "Intersect");
			Assert.IsTrue (p.IsSubsetOf (p), "IsSubsetOf");
			Assert.IsNotNull (p.Union (p), "Union");
		}
Exemple #6
0
        public override IPermission Intersect(IPermission target)
        {
            AspNetHostingPermission anhp = Cast(target);

            if (anhp == null)
            {
                return(null);
            }

            return(new AspNetHostingPermission((_level <= anhp.Level) ? _level : anhp.Level));
        }
        public override bool IsSubsetOf(IPermission target)
        {
            if (target == null)
            {
                return(this._level == AspNetHostingPermissionLevel.None);
            }
            if (target.GetType() != typeof(AspNetHostingPermission))
            {
                throw new ArgumentException(SR.GetString("InvalidArgument", new object[] { (target == null) ? "null" : target.ToString(), "target" }));
            }
            AspNetHostingPermission permission = (AspNetHostingPermission)target;

            return(this.Level <= permission.Level);
        }
Exemple #8
0
        private AspNetHostingPermission Cast(IPermission target)
        {
            if (target == null)
            {
                return(null);
            }

            AspNetHostingPermission anhp = (target as AspNetHostingPermission);

            if (anhp == null)
            {
                PermissionHelper.ThrowInvalidPermission(target, typeof(AspNetHostingPermission));
            }

            return(anhp);
        }
        /// <devdoc>
        /// <para>Compares two System.Net.AspNetHostingPermission instances.</para>
        /// </devdoc>
        public override bool IsSubsetOf(IPermission target)
        {
            if (target == null)
            {
                return(_level == AspNetHostingPermissionLevel.None);
            }

            if (target.GetType() != typeof(AspNetHostingPermission))
            {
                throw new ArgumentException(SR.GetString(SR.InvalidArgument, target == null ? "null" : target.ToString(), "target"));
            }

            AspNetHostingPermission other = (AspNetHostingPermission)target;

            return(Level <= other.Level);
        }
		public void PermissionState_None ()
		{
			PermissionState ps = PermissionState.None;
			AspNetHostingPermission anhp = new AspNetHostingPermission (ps);
			Assert.AreEqual (AspNetHostingPermissionLevel.None, anhp.Level, "Level");
			Assert.IsFalse (anhp.IsUnrestricted (), "IsUnrestricted");

			SecurityElement se = anhp.ToXml ();
			// only class and version are present
			Assert.AreEqual ("None", se.Attribute ("Level"), "Xml-Level");
			Assert.IsNull (se.Children, "Xml-Children");

			AspNetHostingPermission copy = (AspNetHostingPermission)anhp.Copy ();
			Assert.IsFalse (Object.ReferenceEquals (anhp, copy), "ReferenceEquals");
			Assert.AreEqual (anhp.Level, copy.Level, "Level");
			Assert.AreEqual (anhp.IsUnrestricted (), copy.IsUnrestricted (), "IsUnrestricted ()");
		}
        public override IPermission Intersect(IPermission target)
        {
            if (target == null)
            {
                return(null);
            }
            if (target.GetType() != typeof(AspNetHostingPermission))
            {
                throw new ArgumentException(SR.GetString("InvalidArgument", new object[] { (target == null) ? "null" : target.ToString(), "target" }));
            }
            AspNetHostingPermission permission = (AspNetHostingPermission)target;

            if (this.Level <= permission.Level)
            {
                return(new AspNetHostingPermission(this.Level));
            }
            return(new AspNetHostingPermission(permission.Level));
        }
 private static void GetPermissions()
 {
     if (!m_Initialized)
     {
         System.Security.CodeAccessPermission securityTest;
         try
         {
             securityTest = new ReflectionPermission(PermissionState.Unrestricted);
             securityTest.Demand();
             m_ReflectionPermission = true;
         }
         catch
         {
             m_ReflectionPermission = false;
         }
         try
         {
             securityTest = new System.Net.WebPermission(PermissionState.Unrestricted);
             securityTest.Demand();
             m_WebPermission = true;
         }
         catch
         {
             m_WebPermission = false;
         }
         try
         {
             securityTest = new AspNetHostingPermission(AspNetHostingPermissionLevel.Unrestricted);
             securityTest.Demand();
             m_AspNetHostingPermission = true;
         }
         catch
         {
             m_AspNetHostingPermission = false;
         }
         m_Initialized = true;
     }
 }
        /// <include file='doc\AspNetHostingPermission.uex' path='docs/doc[@for="AspNetHostingPermission.Intersect"]/*' />
        /// <devdoc>
        /// <para>Returns the logical intersection between two System.Net.AspNetHostingPermission instances.</para>
        /// </devdoc>
        public override IPermission Intersect(IPermission target)
        {
            if (target == null)
            {
                return(Copy());
            }

            if (target.GetType() != typeof(AspNetHostingPermission))
            {
                throw new ArgumentException("target");
            }

            AspNetHostingPermission other = (AspNetHostingPermission)target;

            if (Level <= other.Level)
            {
                return(new AspNetHostingPermission(Level));
            }
            else
            {
                return(new AspNetHostingPermission(other.Level));
            }
        }
        /// <devdoc>
        /// <para>Returns the logical intersection between two System.Net.AspNetHostingPermission instances.</para>
        /// </devdoc>
        public override IPermission Intersect(IPermission target)
        {
            if (target == null)
            {
                return(null);
            }

            if (target.GetType() != typeof(AspNetHostingPermission))
            {
                throw new ArgumentException(SR.GetString(SR.InvalidArgument, target == null ? "null" : target.ToString(), "target"));
            }

            AspNetHostingPermission other = (AspNetHostingPermission)target;

            if (Level <= other.Level)
            {
                return(new AspNetHostingPermission(Level));
            }
            else
            {
                return(new AspNetHostingPermission(other.Level));
            }
        }
		public void FromXml_NoClass ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			SecurityElement se = anhp.ToXml ();

			SecurityElement w = new SecurityElement (se.Tag);
			w.AddAttribute ("version", se.Attribute ("version"));
			anhp.FromXml (w);
			// note: normally IPermission classes (in corlib) DO NOT care about
			// attribute "class" name presence in the XML
		}
		public void FromXml_WrongClass ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			SecurityElement se = anhp.ToXml ();

			SecurityElement w = new SecurityElement (se.Tag);
			w.AddAttribute ("class", "Wrong" + se.Attribute ("class"));
			w.AddAttribute ("version", se.Attribute ("version"));
			anhp.FromXml (w);
			// doesn't care of the class name at that stage
			// anyway the class has already be created so...
		}
		public void Copy ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			foreach (AspNetHostingPermissionLevel ppl in AllLevel) {
				anhp.Level = ppl;
				AspNetHostingPermission copy = (AspNetHostingPermission)anhp.Copy ();
				Assert.AreEqual (ppl, copy.Level, ppl.ToString ());
			}
		}
        private static void GetPermissions()
        {
            if (!m_Initialized)
            {
                //test RelectionPermission
                CodeAccessPermission securityTest;
                try
                {
                    securityTest = new ReflectionPermission(PermissionState.Unrestricted);
                    securityTest.Demand();
                    m_ReflectionPermission = true;
                }
                catch
                {
                    //code access security error
                    m_ReflectionPermission = false;
                }
				
                //test WebPermission
                try
                {
                    securityTest = new WebPermission(PermissionState.Unrestricted);
                    securityTest.Demand();
                    m_WebPermission = true;
                }
                catch
                {
                    //code access security error
                    m_WebPermission = false;
                }
				
                //test WebHosting Permission (Full Trust)
                try
                {
                    securityTest = new AspNetHostingPermission(AspNetHostingPermissionLevel.Unrestricted);
                    securityTest.Demand();
                    m_AspNetHostingPermission = true;
                }
                catch
                {
                    //code access security error
                    m_AspNetHostingPermission = false;
                }
                m_Initialized = true;

                //Test for Unmanaged Code permission
                try
                {
                    securityTest = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);
                    securityTest.Demand();
                    m_UnManagedCodePermission = true;
                }
                catch (Exception e)
                {
                    m_UnManagedCodePermission = false;
                }
            }
        }
		public void PermissionState_Bad ()
		{
			PermissionState ps = (PermissionState) Int32.MinValue;
			AspNetHostingPermission anhp = new AspNetHostingPermission (ps);
		}
 private static bool IsHighlyTrusted() 
 {
     try
     {
         var permission = new AspNetHostingPermission(AspNetHostingPermissionLevel.High);
         permission.Demand();
         return true;
     }
     catch (SecurityException)
     {
         return false;
     }
 }
		public void IsSubset_Unrestricted ()
		{
			// IsSubset with unrestricted
			// a. source (this) is unrestricted -> target is never a subset
			AspNetHostingPermission sp1 = new AspNetHostingPermission (PermissionState.Unrestricted);
			AspNetHostingPermission sp2 = new AspNetHostingPermission (PermissionState.None);
			foreach (AspNetHostingPermissionLevel ppl in AllLevelExceptUnrestricted) {
				sp2.Level = ppl;
				Assert.IsFalse (sp1.IsSubsetOf (sp2), "target " + ppl.ToString ());
			}
			// exception of AllLevel
			sp2.Level = AspNetHostingPermissionLevel.Unrestricted;
			Assert.IsTrue (sp1.IsSubsetOf (sp2), "target AllLevel");
			// b. destination (target) is unrestricted -> target is always a subset
			foreach (AspNetHostingPermissionLevel ppl in AllLevel) {
				sp2.Level = ppl;
				Assert.IsTrue (sp2.IsSubsetOf (sp1), "source " + ppl.ToString ());
			}
		}
		public void Union_Null ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			// Union with null is a simple copy
			foreach (AspNetHostingPermissionLevel ppl in AllLevel) {
				anhp.Level = ppl;
				AspNetHostingPermission union = (AspNetHostingPermission)anhp.Union (null);
				Assert.AreEqual (ppl, union.Level, ppl.ToString ());
			}
		}
		public void IsSubset_Null ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			Assert.IsTrue (anhp.IsSubsetOf (null), "NoLevel");
			foreach (AspNetHostingPermissionLevel ppl in AllLevelExceptNone) {
				anhp.Level = ppl;
				Assert.IsFalse (anhp.IsSubsetOf (null), ppl.ToString ());
			}
		}
		public void AspNetHostingPermissionLevels_Bad ()
		{
			AspNetHostingPermissionLevel ppl = (AspNetHostingPermissionLevel) Int32.MinValue;
			AspNetHostingPermission anhp = new AspNetHostingPermission (ppl);
		}
		public void Intersect_Unrestricted ()
		{
			// Intersection with unrestricted == Copy
			// a. source (this) is unrestricted
			AspNetHostingPermission sp1 = new AspNetHostingPermission (PermissionState.Unrestricted);
			AspNetHostingPermission sp2 = new AspNetHostingPermission (PermissionState.None);
			foreach (AspNetHostingPermissionLevel ppl in AllLevel) {
				sp2.Level = ppl;
				AspNetHostingPermission result = (AspNetHostingPermission)sp1.Intersect (sp2);
				Assert.AreEqual (sp2.Level, result.Level, "target " + ppl.ToString ());
			}
			// b. destination (target) is unrestricted
			foreach (AspNetHostingPermissionLevel ppl in AllLevel) {
				sp2.Level = ppl;
				AspNetHostingPermission result = (AspNetHostingPermission)sp2.Intersect (sp1);
				Assert.AreEqual (sp2.Level, result.Level, "source " + ppl.ToString ());
			}
		}
		public void Intersect_None ()
		{
			AspNetHostingPermission sp1 = new AspNetHostingPermission (PermissionState.None);
			AspNetHostingPermission sp2 = new AspNetHostingPermission (PermissionState.None);
			foreach (AspNetHostingPermissionLevel ppl in AllLevel) {
				sp2.Level = ppl;
				// 1. Intersect None with ppl
				AspNetHostingPermission result = (AspNetHostingPermission)sp1.Intersect (sp2);
				Assert.AreEqual (AspNetHostingPermissionLevel.None, result.Level, "None N " + ppl.ToString ());
				// 2. Intersect ppl with None
				result = (AspNetHostingPermission)sp2.Intersect (sp1);
				Assert.AreEqual (AspNetHostingPermissionLevel.None, result.Level, ppl.ToString () + "N None");
			}
		}
		public void Intersect_Null ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			// No intersection with null
			foreach (AspNetHostingPermissionLevel ppl in AllLevel) {
				anhp.Level = ppl;
				IPermission p = anhp.Intersect (null);
				Assert.IsNull (p, ppl.ToString ());
			}
		}
		public void FromXml_WrongVersion ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			SecurityElement se = anhp.ToXml ();
			se.Attributes.Remove ("version");
			se.Attributes.Add ("version", "2");
			anhp.FromXml (se);
		}
		public void Union_None ()
		{
			// Union with none is same
			AspNetHostingPermission pp1 = new AspNetHostingPermission (PermissionState.None);
			AspNetHostingPermission pp2 = new AspNetHostingPermission (PermissionState.None);
			AspNetHostingPermission union = null;

			foreach (AspNetHostingPermissionLevel ppl in AllLevelExceptUnrestricted) {
				pp2.Level = ppl;
				
				union = (AspNetHostingPermission)pp1.Union (pp2);
				Assert.IsFalse (union.IsUnrestricted (), "target.Unrestricted " + ppl.ToString ());
				Assert.AreEqual (ppl, union.Level, "target.Level " + ppl.ToString ());

				union = (AspNetHostingPermission)pp2.Union (pp1);
				Assert.IsFalse (union.IsUnrestricted (), "source.Unrestricted " + ppl.ToString ());
				Assert.AreEqual (ppl, union.Level, "source.Level " + ppl.ToString ());
			}

			pp2.Level = AspNetHostingPermissionLevel.Unrestricted;
			union = (AspNetHostingPermission)pp1.Union (pp2);
			Assert.IsTrue (union.IsUnrestricted (), "target.Unrestricted Unrestricted");
			Assert.AreEqual (AspNetHostingPermissionLevel.Unrestricted, union.Level, "target.Level Unrestricted");

			union = (AspNetHostingPermission)pp2.Union (pp1);
			Assert.IsTrue (union.IsUnrestricted (), "source.Unrestricted Unrestricted");
			Assert.AreEqual (AspNetHostingPermissionLevel.Unrestricted, union.Level, "source.Level Unrestricted");
		}
		public void FromXml_NoVersion ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			SecurityElement se = anhp.ToXml ();

			SecurityElement w = new SecurityElement (se.Tag);
			w.AddAttribute ("class", se.Attribute ("class"));
			anhp.FromXml (w);
		}
		public void Union_Self ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			foreach (AspNetHostingPermissionLevel ppl in AllLevel) {
				anhp.Level = ppl;
				AspNetHostingPermission result = (AspNetHostingPermission)anhp.Union (anhp);
				Assert.AreEqual (ppl, result.Level, ppl.ToString ());
			}
		}
		public void PermissionState_Unrestricted ()
		{
			PermissionState ps = PermissionState.Unrestricted;
			AspNetHostingPermission anhp = new AspNetHostingPermission (ps);
			Assert.AreEqual (AspNetHostingPermissionLevel.Unrestricted, anhp.Level, "Level");
			Assert.IsTrue (anhp.IsUnrestricted (), "IsUnrestricted");

			SecurityElement se = anhp.ToXml ();
			// fixed in 2.0 RC
			Assert.IsNotNull (se.Attribute ("Unrestricted"), "Xml-Unrestricted");
			Assert.AreEqual ("Unrestricted", se.Attribute ("Level"), "Xml-Level");
			Assert.IsNull (se.Children, "Xml-Children");

			AspNetHostingPermission copy = (AspNetHostingPermission)anhp.Copy ();
			Assert.IsFalse (Object.ReferenceEquals (anhp, copy), "ReferenceEquals");
			Assert.AreEqual (anhp.Level, copy.Level, "Level");
			Assert.AreEqual (anhp.IsUnrestricted (), copy.IsUnrestricted (), "IsUnrestricted ()");
		}
		public void Union_Unrestricted ()
		{
			// Union with unrestricted is unrestricted
			AspNetHostingPermission sp1 = new AspNetHostingPermission (PermissionState.Unrestricted);
			AspNetHostingPermission sp2 = new AspNetHostingPermission (PermissionState.None);
			// a. source (this) is unrestricted
			foreach (AspNetHostingPermissionLevel ppl in AllLevel) {
				sp2.Level = ppl;
				AspNetHostingPermission union = (AspNetHostingPermission)sp1.Union (sp2);
				Assert.IsTrue (union.IsUnrestricted (), "target " + ppl.ToString ());
			}
			// b. destination (target) is unrestricted
			foreach (AspNetHostingPermissionLevel ppl in AllLevel) {
				sp2.Level = ppl;
				AspNetHostingPermission union = (AspNetHostingPermission)sp2.Union (sp1);
				Assert.IsTrue (union.IsUnrestricted (), "source " + ppl.ToString ());
			}
		}
        private static bool IsHighlyTrusted()
        {
            #if NET_1_0
            //
            // ASP.NET 1.0 applications always required and ran under full
            // trust so we just return true here.
            //

            return true;
            #else
            try
            {
                AspNetHostingPermission permission = new AspNetHostingPermission(AspNetHostingPermissionLevel.High);
                permission.Demand();
                return true;
            }
            catch (SecurityException)
            {
                return false;
            }
            #endif
        }
		public void FromXml_Null ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			anhp.FromXml (null);
		}
		public void Intersect_Null ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			// No intersection with null
			foreach (AspNetHostingPermissionLevel ppl in AllLevel) {
				anhp.Level = ppl;
				IPermission p = anhp.Intersect (null);
#if ! NET_2_0
				if (p != null)
					Assert.Ignore ("Behaviour changed in FX 1.1 SP1");
#endif
				Assert.IsNull (p, ppl.ToString ());
			}
		}
		public void FromXml_WrongTagCase ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			SecurityElement se = anhp.ToXml ();
			se.Tag = "IPERMISSION"; // instead of IPermission
			anhp.FromXml (se);
			// note: normally IPermission classes (in corlib) DO care about the
			// IPermission tag
		}
		public void IsSubset_Self ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			foreach (AspNetHostingPermissionLevel ppl in AllLevel) {
				anhp.Level = ppl;
				AspNetHostingPermission result = (AspNetHostingPermission)anhp.Intersect (anhp);
				Assert.IsTrue (anhp.IsSubsetOf (anhp), ppl.ToString ());
			}
		}
		public void Level_AspNetHostingPermissionLevels_Bad ()
		{
			AspNetHostingPermission anhp = new AspNetHostingPermission (PermissionState.None);
			anhp.Level = (AspNetHostingPermissionLevel) Int32.MinValue;
		}