Наследование: ISecurityEncodable, IMembershipCondition
		public void FromXml_NoVersion ()
		{
			ZoneMembershipCondition zmc = new ZoneMembershipCondition (SecurityZone.MyComputer);
			SecurityElement se = zmc.ToXml ();

			SecurityElement w = new SecurityElement (se.Tag);
			w.AddAttribute ("class", se.Attribute ("class"));
			zmc.FromXml (w);
		}
		public void ToXml_Null ()
		{
			ZoneMembershipCondition zmc = new ZoneMembershipCondition (SecurityZone.MyComputer);
			// no ArgumentNullException here
			SecurityElement se = zmc.ToXml (null);
			Assert.IsNotNull (se, "ToXml(null)");
		}
		public void FromXml_InvalidClass ()
		{
			ZoneMembershipCondition zmc = new ZoneMembershipCondition (SecurityZone.MyComputer);
			SecurityElement se = zmc.ToXml ();
			se.Attributes ["class"] = "Hello world";
			zmc.FromXml (se);
		}
		public void FromXml_NoClass ()
		{
			ZoneMembershipCondition zmc = new ZoneMembershipCondition (SecurityZone.MyComputer);
			SecurityElement se = zmc.ToXml ();

			SecurityElement w = new SecurityElement (se.Tag);
			w.AddAttribute ("version", se.Attribute ("version"));
			zmc.FromXml (w);
			// doesn't even care of the class attribute presence
		}
		public void FromXml_Null ()
		{
			ZoneMembershipCondition zmc = new ZoneMembershipCondition (SecurityZone.MyComputer);
			zmc.FromXml (null);
		}
		public void FromXml_InvalidTag ()
		{
			ZoneMembershipCondition zmc = new ZoneMembershipCondition (SecurityZone.MyComputer);
			SecurityElement se = zmc.ToXml ();
			se.Tag = "IMonoship";
			zmc.FromXml (se);
		}
		public void SecurityZone_NoZone ()
		{
			ZoneMembershipCondition zmc = new ZoneMembershipCondition (SecurityZone.MyComputer);
			zmc.SecurityZone = SecurityZone.NoZone;
		}
Пример #8
0
		public void Resolve_ZoneMembershipCondition_NoZone ()
		{
			IMembershipCondition mc = new ZoneMembershipCondition (SecurityZone.NoZone);
		}
		public void ZoneMembershipCondition_Invalid ()
		{
			ZoneMembershipCondition zmc = new ZoneMembershipCondition ((SecurityZone)128);
		}
Пример #10
0
		public void ZoneMembershipCondition_NoZone ()
		{
			ZoneMembershipCondition zmc = new ZoneMembershipCondition (SecurityZone.NoZone);
		}
Пример #11
0
 /// <summary>用确定成员身份的区域初始化 <see cref="T:System.Security.Policy.ZoneMembershipCondition" /> 类的新实例。</summary>
 /// <param name="zone">要对其进行测试的 <see cref="T:System.Security.SecurityZone" />。</param>
 /// <exception cref="T:System.ArgumentException">
 /// <paramref name="zone" /> 参数不是有效的 <see cref="T:System.Security.SecurityZone" />。</exception>
 public ZoneMembershipCondition(SecurityZone zone)
 {
     ZoneMembershipCondition.VerifyZone(zone);
     this.SecurityZone = zone;
 }
		private void Resolve_Zone_Unrestricted_Attribute (SecurityZone zone, PolicyStatementAttribute attr)
		{
			IMembershipCondition mc = new ZoneMembershipCondition (zone);
			PolicyStatement ps = new PolicyStatement (new PermissionSet (PermissionState.Unrestricted));
			ps.Attributes = attr;
			PolicyLevel pl = PolicyLevel.CreateAppDomainLevel ();
			pl.RootCodeGroup = new UnionCodeGroup (mc, ps);

			Resolve_Zone (pl, SecurityZone.Internet, attr, (zone == SecurityZone.Internet), 0);
			Resolve_Zone (pl, SecurityZone.Intranet, attr, (zone == SecurityZone.Intranet), 0);
			Resolve_Zone (pl, SecurityZone.MyComputer, attr, (zone == SecurityZone.MyComputer), 0);
			Resolve_Zone (pl, SecurityZone.NoZone, attr, (zone == SecurityZone.NoZone), 0);
			Resolve_Zone (pl, SecurityZone.Trusted, attr, (zone == SecurityZone.Trusted), 0);
			Resolve_Zone (pl, SecurityZone.Untrusted, attr, (zone == SecurityZone.Untrusted), 0);
		}
Пример #13
0
		public void Resolve_ZoneMembershipCondition_Untrusted ()
		{
			IMembershipCondition mc = new ZoneMembershipCondition (SecurityZone.Untrusted);
			PermissionSet pset = new PermissionSet (PermissionState.None);
			UnionCodeGroup cg = new UnionCodeGroup (mc, new PolicyStatement (pset, PolicyStatementAttribute.Nothing));

			Evidence e = new Evidence ();
			e.AddHost (new Zone (SecurityZone.Untrusted));
			PolicyStatement result = cg.Resolve (e);
			Assert.AreEqual (PolicyStatementAttribute.Nothing, result.Attributes, "Untrusted-Attributes");
			Assert.AreEqual (String.Empty, result.AttributeString, "Untrusted-AttributeString");
			Assert.IsFalse (result.PermissionSet.IsUnrestricted (), "Untrusted-IsUnrestricted");
			Assert.AreEqual (0, result.PermissionSet.Count, "Untrusted-Count");

			e = new Evidence ();
			e.AddHost (new Zone (SecurityZone.Internet));
			Assert.IsNull (cg.Resolve (e), "Internet");

			e = new Evidence ();
			e.AddHost (new Zone (SecurityZone.Intranet));
			Assert.IsNull (cg.Resolve (e), "Intranet");

			e = new Evidence ();
			e.AddHost (new Zone (SecurityZone.MyComputer));
			Assert.IsNull (cg.Resolve (e), "MyComputer");

			e = new Evidence ();
			e.AddHost (new Zone (SecurityZone.NoZone));
			Assert.IsNull (cg.Resolve (e), "NoZone");

			e = new Evidence ();
			e.AddHost (new Zone (SecurityZone.Trusted));
			Assert.IsNull (cg.Resolve (e), "Trusted");
		}
Пример #14
0
		public void ToXml_PolicyLevel ()
		{
			ZoneMembershipCondition zmc = new ZoneMembershipCondition (SecurityZone.MyComputer);
			SecurityElement se = zmc.ToXml ();
			string s = zmc.ToXml ().ToString ();
			// is it accepted for all policy levels ?
			IEnumerator e = SecurityManager.PolicyHierarchy ();
			while (e.MoveNext ()) {
				PolicyLevel pl = e.Current as PolicyLevel;
				ZoneMembershipCondition spl = new ZoneMembershipCondition (SecurityZone.Internet);
				spl.FromXml (se, pl);
				Assert.AreEqual (s, spl.ToXml (pl).ToString (), "ToXml(PolicyLevel='" + pl.Label + "')");
			}
			// yes!
		}
Пример #15
0
		public void SecurityZone_Invalid ()
		{
			ZoneMembershipCondition zmc = new ZoneMembershipCondition (SecurityZone.MyComputer);
			zmc.SecurityZone = (SecurityZone)128;
		}
Пример #16
0
		private ZoneMembershipCondition BasicTest (SecurityZone zone)
		{
			ZoneMembershipCondition zmc = new ZoneMembershipCondition (zone);
			Assert.AreEqual (zone, zmc.SecurityZone, "SecurityZone");
			Assert.IsFalse (zmc.Check (null), "Check(null)");
			Assert.IsFalse (zmc.Check (allEmpty), "Check(empty)");
			Assert.IsFalse (zmc.Check (hostOther), "Check(hostOther)");
			Assert.IsFalse (zmc.Check (assemblyOther), "Check(assemblyOther)");

			ZoneMembershipCondition copy = (ZoneMembershipCondition) zmc.Copy ();
			Assert.IsTrue (zmc.Equals (copy), "Equals-1");
			Assert.IsTrue (copy.Equals (zmc), "Equals-2");
			Assert.IsFalse (Object.ReferenceEquals (zmc, copy), "!ReferenceEquals");
			Assert.IsFalse (zmc.Equals (null), "Equals-3");
			Assert.IsFalse (zmc.Equals (wrongEvidence), "Equals-4");

			SecurityElement se = zmc.ToXml ();
			copy.FromXml (se);
			Assert.IsTrue (zmc.Equals (copy), "Equals-5");
			Assert.AreEqual (se.ToString (), zmc.ToXml (null).ToString (), "Equals-6");

			Assert.IsTrue (zmc.ToString ().StartsWith ("Zone - "), "ToString-1");
			Assert.IsTrue (zmc.ToString ().EndsWith (zmc.SecurityZone.ToString ()), "ToString-2");

			Assert.AreEqual (zmc.SecurityZone.GetHashCode (), zmc.GetHashCode (), "GetHashCode");

			return zmc; // for further tests
		}
        /// <summary>Determines whether the zone from the specified object is equivalent to the zone contained in the current <see cref="T:System.Security.Policy.ZoneMembershipCondition" />.</summary>
        /// <returns>true if the zone from the specified object is equivalent to the zone contained in the current <see cref="T:System.Security.Policy.ZoneMembershipCondition" />; otherwise, false.</returns>
        /// <param name="o">The object to compare to the current <see cref="T:System.Security.Policy.ZoneMembershipCondition" />. </param>
        /// <exception cref="T:System.ArgumentNullException">The <see cref="P:System.Security.Policy.ZoneMembershipCondition.SecurityZone" /> property for the current object or the specified object is null. </exception>
        /// <exception cref="T:System.ArgumentException">The <see cref="P:System.Security.Policy.ZoneMembershipCondition.SecurityZone" /> property for the current object or the specified object is not a valid <see cref="T:System.Security.SecurityZone" />. </exception>
        public override bool Equals(object o)
        {
            ZoneMembershipCondition zoneMembershipCondition = o as ZoneMembershipCondition;

            return(zoneMembershipCondition != null && zoneMembershipCondition.SecurityZone == this.zone);
        }