public void Intersect_DifferentPermissions()
        {
            ZoneIdentityPermission a = new ZoneIdentityPermission(SecurityZone.Trusted);
            SecurityPermission     b = new SecurityPermission(PermissionState.None);

            a.Intersect(b);
        }
コード例 #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()
    {
        ZoneIdentityPermission zoneIdPerm1 = new ZoneIdentityPermission(SecurityZone.Intranet);
        ZoneIdentityPermission zoneIdPerm2 = new ZoneIdentityPermission(SecurityZone.MyComputer);
        ZoneIdentityPermission p3          = (ZoneIdentityPermission)zoneIdPerm1.Union(zoneIdPerm2);

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

            Console.WriteLine(e.Message);
        }
    }
        public void Union()
        {
            ZoneIdentityPermission a = new ZoneIdentityPermission(SecurityZone.Trusted);

            ZoneIdentityPermission z = (ZoneIdentityPermission)a.Union(null);

            Assert.IsTrue(Same(a, z), "Trusted+null");
            Assert.IsFalse(Object.ReferenceEquals(a, z), "!ReferenceEquals1");

            z = (ZoneIdentityPermission)a.Union(new ZoneIdentityPermission(PermissionState.None));
            Assert.IsTrue(Same(a, z), "Trusted+PS.None");
            Assert.IsFalse(Object.ReferenceEquals(a, z), "!ReferenceEquals2");

            // note: can't be tested with PermissionState.Unrestricted

            ZoneIdentityPermission n = new ZoneIdentityPermission(SecurityZone.NoZone);

            z = (ZoneIdentityPermission)a.Union(n);
            Assert.IsTrue(Same(a, z), "Trusted+NoZone");
            Assert.IsFalse(Object.ReferenceEquals(a, z), "!ReferenceEquals3");

            z = (ZoneIdentityPermission)n.Union(a);
            Assert.IsTrue(Same(a, z), "NoZone+Trusted");
            Assert.IsFalse(Object.ReferenceEquals(a, z), "!ReferenceEquals4");
        }
        public void IsSubsetOf_DifferentPermissions()
        {
            ZoneIdentityPermission a = new ZoneIdentityPermission(SecurityZone.Trusted);
            SecurityPermission     b = new SecurityPermission(PermissionState.None);

            a.IsSubsetOf(b);
        }
コード例 #5
0
    // <Snippet2>
    // IsSubsetOf determines whether the current permission is a subset of the specified permission.
    private static void IsSubsetOfDemo()
    {
        //<Snippet8>
        ZoneIdentityPermission zoneIdPerm1 = new ZoneIdentityPermission(SecurityZone.Intranet);
        //</Snippet8>
        ZoneIdentityPermission zoneIdPerm2 = new ZoneIdentityPermission(SecurityZone.MyComputer);

        if (zoneIdPerm1.IsSubsetOf(zoneIdPerm2))
        {
            Console.WriteLine(zoneIdPerm1.SecurityZone.ToString() + " is a subset of " +
                              zoneIdPerm2.SecurityZone.ToString());
        }
        else
        {
            Console.WriteLine(zoneIdPerm1.SecurityZone.ToString() + " is not a subset of " +
                              zoneIdPerm2.SecurityZone.ToString());
        }
        if (zoneIdPerm2.IsSubsetOf(zoneIdPerm1))
        {
            Console.WriteLine(zoneIdPerm2.SecurityZone.ToString() + " is a subset of " +
                              zoneIdPerm1.SecurityZone.ToString());
        }
        else
        {
            Console.WriteLine(zoneIdPerm2.SecurityZone.ToString() + " is not a subset of " +
                              zoneIdPerm1.SecurityZone.ToString());
        }
    }
        public void Union_DifferentPermissions()
        {
            ZoneIdentityPermission a = new ZoneIdentityPermission(SecurityZone.Trusted);
            SecurityPermission     b = new SecurityPermission(PermissionState.None);

            a.Union(b);
        }
        public void FromXml_WrongTagCase()
        {
            ZoneIdentityPermission zip = new ZoneIdentityPermission(PermissionState.None);
            SecurityElement        se  = zip.ToXml();

            se.Tag = "IPERMISSION"; // instead of IPermission
            zip.FromXml(se);
        }
        private bool Same(ZoneIdentityPermission zip1, ZoneIdentityPermission zip2)
        {
#if NET_2_0
            return(zip1.Equals(zip2));
#else
            return(zip1.SecurityZone == zip2.SecurityZone);
#endif
        }
コード例 #9
0
    public Object[] call_method_asm(Int32 asem_type, Int32 sec_unrestricted, String assem, String atype,
                                    String method, Object[] vparams, IntPtr [] oparams)
    {
        Object [] ret = new Object[2];
#if !MONO
        try
        {
#endif
        Type type = get_type(asem_type, assem, atype);

        vparams = change_ptr(vparams, oparams);

        /* Get the methods from the type */
        MethodInfo[] methods = type.GetMethods();

        if (methods == null)
        {
            throw new Exception("No methods Found in " + type.FullName);
        }

        StringBuilder failureExcuses = new StringBuilder();

        try
        {
            foreach (MethodInfo m in methods)
            {
                if (m.Name == method && CheckArgs(m, vparams))
                {
#if !MONO
                    if (sec_unrestricted == 0)
                    {
                        ZoneIdentityPermission zip = new ZoneIdentityPermission(SecurityZone.NoZone);
                        zip.PermitOnly();
                    }
#endif
                    return(res_to_ptr(m.Invoke(null, vparams)));
                }
            }
        }
        catch (TargetInvocationException e)
        {
            throw e.InnerException;
        }

        throw new Exception("No method " + method + " called");
#if !MONO
    }

    catch (Exception e)
    {
        ret[0] = 0;
        ret[1] = e.Message;
        return(ret);
    }
#endif
    }
コード例 #10
0
        public void IsGranted_ZoneIdentityPermission()
        {
            ZoneIdentityPermission zip = new ZoneIdentityPermission(SecurityZone.Internet);

#if NET_2_0
            Assert.IsTrue(SecurityManager.IsGranted(zip));
#else
            Assert.IsFalse(SecurityManager.IsGranted(zip));
#endif
        }
        public void FromXml_NoVersion()
        {
            ZoneIdentityPermission zip = new ZoneIdentityPermission(PermissionState.None);
            SecurityElement        se  = zip.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", se.Attribute("class"));
            zip.FromXml(w);
        }
        public void FromXml_NoClass()
        {
            ZoneIdentityPermission zip = new ZoneIdentityPermission(PermissionState.None);
            SecurityElement        se  = zip.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("version", se.Attribute("version"));
            zip.FromXml(w);
            // doesn't even care of the class attribute presence
        }
        public void PermissionStateUnrestricted()
        {
            // In 2.0 Unrestricted are permitted for identity permissions
            ZoneIdentityPermission zip = new ZoneIdentityPermission(PermissionState.Unrestricted);

            Assert.AreEqual(SecurityZone.NoZone, zip.SecurityZone);
            SecurityElement se = zip.ToXml();

            Assert.AreEqual(5, se.Children.Count, "Count");
            // and they aren't equals to None
            Assert.IsFalse(zip.Equals(new ZoneIdentityPermission(PermissionState.None)));
        }
コード例 #14
0
        public static void ZoneIdentityPermissionCallMethods()
        {
            ZoneIdentityPermission zip  = new ZoneIdentityPermission(new PermissionState());
            ZoneIdentityPermission zip2 = new ZoneIdentityPermission(new SecurityZone());
            IPermission            ip   = zip.Copy();
            IPermission            ip2  = zip.Intersect(ip);
            bool            testbool    = zip.IsSubsetOf(ip);
            SecurityElement se          = new SecurityElement("");

            zip.FromXml(se);
            se = zip.ToXml();
        }
コード例 #15
0
        public void Default()
        {
            ZoneIdentityPermissionAttribute a = new ZoneIdentityPermissionAttribute(SecurityAction.Assert);

            Assert.AreEqual(a.ToString(), a.TypeId.ToString(), "TypeId");
            Assert.IsFalse(a.Unrestricted, "Unrestricted");
            Assert.AreEqual(SecurityZone.NoZone, a.Zone, "Zone");

            ZoneIdentityPermission perm = (ZoneIdentityPermission)a.CreatePermission();

            Assert.AreEqual(SecurityZone.NoZone, perm.SecurityZone, "CreatePermission-SecurityZone");
        }
コード例 #16
0
    //</Snippet4>
    //<Snippet5>
    //Copy creates and returns an identical copy of the current permission.
    private static void CopyDemo()
    {
        ZoneIdentityPermission zoneIdPerm1 = new ZoneIdentityPermission(SecurityZone.Intranet);
        //<Snippet7>
        ZoneIdentityPermission zoneIdPerm2 = new ZoneIdentityPermission(PermissionState.None);

        //</Snippet7>
        zoneIdPerm2 = (ZoneIdentityPermission)zoneIdPerm1.Copy();
        if (zoneIdPerm2 != null)
        {
            Console.WriteLine("The copy succeeded:  " + zoneIdPerm2.ToString() + " \n");
        }
    }
        public void FromXml_WrongClass()
        {
            ZoneIdentityPermission zip = new ZoneIdentityPermission(PermissionState.None);
            SecurityElement        se  = zip.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", "Wrong" + se.Attribute("class"));
            w.AddAttribute("version", se.Attribute("version"));
            zip.FromXml(w);
            // doesn't care of the class name at that stage
            // anyway the class has already be created so...
        }
コード例 #18
0
 public void CheckAptcaIsPresentInExceptionHandlingWCF()
 {
     try
     {
         ZoneIdentityPermission zone = new ZoneIdentityPermission(PermissionState.None);
         zone.Deny();
         Type   type          = typeof(ExceptionShieldingElement);
         object objectCreated = Activator.CreateInstance(type);
     }
     finally
     {
         ZoneIdentityPermission.RevertDeny();
     }
 }
コード例 #19
0
 public void AptcaIsPresentInLoggingDatabase()
 {
     try
     {
         ZoneIdentityPermission zoneIdentityPermission = new ZoneIdentityPermission(PermissionState.None);
         zoneIdentityPermission.Deny();
         Type   type          = typeof(FormattedDatabaseTraceListenerData);
         object createdObject = Activator.CreateInstance(type);
     }
     finally
     {
         ZoneIdentityPermission.RevertDeny();
     }
 }
コード例 #20
0
 public void CheckAptcaIsPresentInExceptionHandlingWCFConfigurationDesign()
 {
     try
     {
         ZoneIdentityPermission zone = new ZoneIdentityPermission(PermissionState.None);
         zone.Deny();
         Type   type          = typeof(FaultContractPropertyMapping);
         object objectCreated = Activator.CreateInstance(type);
     }
     finally
     {
         ZoneIdentityPermission.RevertDeny();
     }
 }
コード例 #21
0
 public void AptcaIsPresentInExceptionHandling()
 {
     try
     {
         ZoneIdentityPermission zoneIdentityPermission = new ZoneIdentityPermission(PermissionState.None);
         zoneIdentityPermission.Deny();
         Type   type          = typeof(ExceptionPolicyCustomFactory);
         object createdObject = Activator.CreateInstance(type);
     }
     finally
     {
         ZoneIdentityPermission.RevertDeny();
     }
 }
コード例 #22
0
 public void CheckAptcaIsPresentInDataSqlCe()
 {
     try
     {
         ZoneIdentityPermission zoneIdentityPermission = new ZoneIdentityPermission(PermissionState.None);
         zoneIdentityPermission.Deny();
         Type   type          = typeof(SqlCeDatabase);
         object createdObject = Activator.CreateInstance(type, "connectionString");
     }
     finally
     {
         ZoneIdentityPermission.RevertDeny();
     }
 }
コード例 #23
0
 public void AptcaIsPresentInLoggingConfigurationDesign()
 {
     try
     {
         ZoneIdentityPermission zoneIdentityPermission = new ZoneIdentityPermission(PermissionState.None);
         zoneIdentityPermission.Deny();
         Type   type          = typeof(LoggingSettingsNode);
         object createdObject = Activator.CreateInstance(type);
     }
     finally
     {
         ZoneIdentityPermission.RevertDeny();
     }
 }
コード例 #24
0
 public void AptcaIsPresentInData()
 {
     try
     {
         ZoneIdentityPermission zoneIdentityPermission = new ZoneIdentityPermission(PermissionState.None);
         zoneIdentityPermission.Deny();
         DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.SqlClient");
         Type   type          = typeof(GenericDatabase);
         object createdObject = Activator.CreateInstance(type, "connectionString", factory);
     }
     finally
     {
         ZoneIdentityPermission.RevertDeny();
     }
 }
コード例 #25
0
ファイル: APTCAFixture.2008.cs プロジェクト: janeth182/ISIL
        public void AptcaIsPresentInValidationIntegrationWinForms()
        {
            try
            {
                ZoneIdentityPermission zoneIdentityPermission = new ZoneIdentityPermission(PermissionState.None);
                zoneIdentityPermission.Deny();

                Type   type          = typeof(ValidationProvider);
                object createdObject = Activator.CreateInstance(type);
            }
            finally
            {
                ZoneIdentityPermission.RevertDeny();
            }
        }
コード例 #26
0
ファイル: APTCAFixture.2008.cs プロジェクト: janeth182/ISIL
        public void AptcaIsPresentInCachingDatabase()
        {
            try
            {
                ZoneIdentityPermission zoneIdentityPermission = new ZoneIdentityPermission(PermissionState.None);
                zoneIdentityPermission.Deny();

                Type   type          = typeof(DataCacheStorageData);
                object createdObject = Activator.CreateInstance(type);
            }
            finally
            {
                ZoneIdentityPermission.RevertDeny();
            }
        }
コード例 #27
0
        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);
            }
        }
コード例 #28
0
        public void AptcaIsPresentInSecurityCryptography()
        {
            try
            {
                ZoneIdentityPermission zoneIdentityPermission = new ZoneIdentityPermission(PermissionState.None);
                zoneIdentityPermission.Deny();

                Type   type          = typeof(CryptographySettings);
                object createdObject = Activator.CreateInstance(type);
            }
            finally
            {
                ZoneIdentityPermission.RevertDeny();
            }
        }
コード例 #29
0
        public void AptcaIsPresentInCaching()
        {
            try
            {
                ZoneIdentityPermission zoneIdentityPermission = new ZoneIdentityPermission(PermissionState.None);
                zoneIdentityPermission.Deny();

                Type   type          = typeof(PriorityDateComparer);
                object createdObject = Activator.CreateInstance(type, new Hashtable());
            }
            finally
            {
                ZoneIdentityPermission.RevertDeny();
            }
        }
コード例 #30
0
ファイル: APTCAFixture.2008.cs プロジェクト: janeth182/ISIL
        public void AptcaIsPresentInPolicyInjection()
        {
            try
            {
                ZoneIdentityPermission zoneIdentityPermission = new ZoneIdentityPermission(PermissionState.None);
                zoneIdentityPermission.Deny();

                Type   type          = typeof(CustomMatchingRuleData);
                object createdObject = Activator.CreateInstance(type);
            }
            finally
            {
                ZoneIdentityPermission.RevertDeny();
            }
        }
コード例 #31
0
ファイル: PermissionTests.cs プロジェクト: Corillian/corefx
 public static void ZoneIdentityPermissionCallMethods()
 {
     ZoneIdentityPermission zip = new ZoneIdentityPermission(new PermissionState());
     ZoneIdentityPermission zip2 = new ZoneIdentityPermission(new SecurityZone());
     IPermission ip = zip.Copy();
     IPermission ip2 = zip.Intersect(ip);
     bool testbool = zip.IsSubsetOf(ip);
     SecurityElement se = new SecurityElement("");
     zip.FromXml(se);
     se = zip.ToXml();
 }
コード例 #32
0
ファイル: virtclr.cs プロジェクト: jplu/virtuoso-opensource
  public Object[] call_ins (IntPtr instance, Int32 sec_unrestricted, String method,
      			    Object[] vparams, IntPtr [] oparams)
    {
      Object new_instance;
      Type instance_type;
      String assem_name;
      Object [] ret = new Object[2];

#if !MONO
      try
	{
#endif
	  new_instance = get_inst (instance);
	  instance_type = new_instance.GetType();
	  assem_name = instance_type.Assembly.FullName.ToString();
	  int pos = assem_name.IndexOf (",");
	  if (pos != -1)
	    assem_name = assem_name.Substring (0, pos);

	  vparams = change_ptr (vparams, oparams);
	  MethodInfo[] methods = instance_type.GetMethods();
	  /* TODO Change to temp.GetMethod (strin, Binding Flags, NULL, Type[], NULL) */
	  try
	    {
	      foreach(MethodInfo m in methods)
		{
		  if (m.Name != method)
		    {
		      continue;
		    }
		  else
		    {
		      if (CheckArgs(m, vparams))
			{
#if !MONO
			  if (sec_unrestricted == 0)
			    {
			      ZoneIdentityPermission zip = new ZoneIdentityPermission(SecurityZone.NoZone);
			      zip.PermitOnly();
			    }
#endif
			  /* ->  Ready  <- */
			  return res_to_ptr (m.Invoke(new_instance, vparams));
			}
		      else
			continue;
		    }
		}
	    }
	  catch (TargetInvocationException e)
	    {
	      throw e.InnerException;
	    }

	  throw new Exception ("Method " + method + " not found in call_ins");
#if !MONO
	}
      catch (Exception e)
	{
	  ret[0] = 0;
	  ret[1] = e.Message;
	  return ret;
	}
#endif
    }
コード例 #33
0
ファイル: virtclr.cs プロジェクト: jplu/virtuoso-opensource
  public Object[] call_method_asm (Int32 asem_type, Int32 sec_unrestricted, String assem, String atype,
      String method, Object[] vparams, IntPtr [] oparams)
    {
      Object [] ret = new Object[2];
#if !MONO
      try
	{
#endif
	  Type type = get_type (asem_type, assem, atype);

	  vparams = change_ptr (vparams, oparams);

	  /* Get the methods from the type */
	  MethodInfo[] methods = type.GetMethods();

	  if(methods == null)
	    {
	      throw new Exception ("No methods Found in " + type.FullName);
	    }

	  StringBuilder failureExcuses = new StringBuilder();

	  try
	    {
	      foreach(MethodInfo m in methods)
		{
		  if (m.Name == method && CheckArgs (m, vparams))
		    {
#if !MONO
		      if (sec_unrestricted == 0)
			{
			  ZoneIdentityPermission zip = new ZoneIdentityPermission(SecurityZone.NoZone);
			  zip.PermitOnly();
			}
#endif
		      return res_to_ptr (m.Invoke (null, vparams));
		    }
		}
	    }
	  catch (TargetInvocationException e)
	    {
	      throw e.InnerException;
	    }

	  throw new Exception ("No method " + method + " called");
#if !MONO
	}
      catch (Exception e)
	{
	  ret[0] = 0;
	  ret[1] = e.Message;
	  return ret;
	}
#endif
    }