Intersect() public method

public Intersect ( IPermission target ) : IPermission
target IPermission
return IPermission
Ejemplo n.º 1
0
        public override IPermission Intersect(IPermission target)
        {
            // Handle the easy cases first.
            if (target == null)
            {
                return(target);
            }
            else if (!(target is FileIOPermission))
            {
                throw new ArgumentException(_("Arg_PermissionMismatch"));
            }
            else if (((FileIOPermission)target).IsUnrestricted())
            {
                return(Copy());
            }
            else if (IsUnrestricted())
            {
                return(target.Copy());
            }

            // Create a new object and intersect the lists.
            return(new FileIOPermission
                       (PermissionState.None,
                       EnvironmentPermission.Intersect(readList,
                                                       ((FileIOPermission)target).readList),
                       EnvironmentPermission.Intersect(writeList,
                                                       ((FileIOPermission)target).writeList),
                       EnvironmentPermission.Intersect(appendList,
                                                       ((FileIOPermission)target).appendList),
                       EnvironmentPermission.Intersect(discoveryList,
                                                       ((FileIOPermission)target).discoveryList),
                       allLocalFiles & ((FileIOPermission)target).allLocalFiles,
                       allFiles & ((FileIOPermission)target).allFiles));
        }
Ejemplo n.º 2
0
        public override IPermission Intersect(IPermission target)
        {
            // Handle the easy cases first.
            if (target == null)
            {
                return(target);
            }
            else if (!(target is RegistryPermission))
            {
                throw new ArgumentException(_("Arg_PermissionMismatch"));
            }
            else if (((RegistryPermission)target).IsUnrestricted())
            {
                return(Copy());
            }
            else if (IsUnrestricted())
            {
                return(target.Copy());
            }

            // Create a new object and intersect the lists.
            return(new RegistryPermission
                       (PermissionState.None,
                       EnvironmentPermission.Intersect(readList,
                                                       ((RegistryPermission)target).readList),
                       EnvironmentPermission.Intersect(writeList,
                                                       ((RegistryPermission)target).writeList),
                       EnvironmentPermission.Intersect(createList,
                                                       ((RegistryPermission)target).createList)));
        }
Ejemplo n.º 3
0
 public override IPermission Intersect(IPermission target)
 {
     if (target == null)
     {
         return(target);
     }
     else if (!(target is SiteIdentityPermission))
     {
         throw new ArgumentException(_("Arg_PermissionMismatch"));
     }
     else
     {
         return(new SiteIdentityPermission
                    (EnvironmentPermission.Intersect
                        (sites, ((SiteIdentityPermission)target).sites)));
     }
 }
		public void IntersectWithBadPermission () 
		{
			EnvironmentPermission ep1 = new EnvironmentPermission (EnvironmentPermissionAccess.Read, envVariables);
			FileDialogPermission fdp2 = new FileDialogPermission (PermissionState.Unrestricted);
			EnvironmentPermission ep3 = (EnvironmentPermission) ep1.Intersect (fdp2);
		}
		public void Intersect () 
		{
			// no intersection
			EnvironmentPermission ep1 = new EnvironmentPermission (EnvironmentPermissionAccess.Write, envVariables);
			EnvironmentPermission ep2 = new EnvironmentPermission (EnvironmentPermissionAccess.Read, envVariables);
			EnvironmentPermission ep3 = (EnvironmentPermission) ep1.Intersect (ep2);
			AssertNull ("EP1 N EP2 == null", ep3);
			// intersection in read
			EnvironmentPermission ep4 = new EnvironmentPermission (EnvironmentPermissionAccess.Read, "TMP");		
			ep3 = (EnvironmentPermission) ep4.Intersect (ep2);
			AssertEquals ("Intersect-Read", "TMP", ep3.GetPathList (EnvironmentPermissionAccess.Read));
			// intersection in write
			EnvironmentPermission ep5 = new EnvironmentPermission (EnvironmentPermissionAccess.Write, "TEMP");		
			ep3 = (EnvironmentPermission) ep5.Intersect (ep1);
			AssertEquals ("Intersect-Read", "TEMP", ep3.GetPathList (EnvironmentPermissionAccess.Write));
			// intersection in read and write
			EnvironmentPermission ep6 = new EnvironmentPermission (EnvironmentPermissionAccess.AllAccess, "TEMP");
			EnvironmentPermission ep7 = new EnvironmentPermission (EnvironmentPermissionAccess.AllAccess, envVariables);
			ep3 = (EnvironmentPermission) ep6.Intersect (ep7);
			AssertEquals ("Intersect-AllAccess-Read", "TEMP", ep3.GetPathList (EnvironmentPermissionAccess.Read));
			AssertEquals ("Intersect-AllAccess-Write", "TEMP", ep3.GetPathList (EnvironmentPermissionAccess.Write));
		}
		public void IntersectWithUnrestricted () 
		{
			EnvironmentPermission ep1 = new EnvironmentPermission (PermissionState.Unrestricted);
			EnvironmentPermission ep2 = new EnvironmentPermission (EnvironmentPermissionAccess.Read, envVariables);
			EnvironmentPermission ep3 = (EnvironmentPermission) ep1.Intersect (ep2);
			Assert ("Unrestricted N EP2 == EP2", !ep3.IsUnrestricted ());
			AssertEquals ("Unrestricted N EP2 == EP2", ep2.ToXml ().ToString (), ep3.ToXml ().ToString ());
			ep3 = (EnvironmentPermission) ep2.Intersect (ep1);
			Assert ("EP2 N Unrestricted == EP2", !ep3.IsUnrestricted ());
			AssertEquals ("EP2 N Unrestricted == EP2", ep2.ToXml ().ToString (), ep3.ToXml ().ToString ());
		}
		public void IntersectWithNull () 
		{
			EnvironmentPermission ep1 = new EnvironmentPermission (EnvironmentPermissionAccess.Read, envVariables);
			EnvironmentPermission ep2 = null;
			EnvironmentPermission ep3 = (EnvironmentPermission) ep1.Intersect (ep2);
			AssertNull ("EP1 N null == null", ep3);
		}