Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自非受限appdomain的securityexception_C#_Sandbox_Remoting_Appdomain - Fatal编程技术网

C# 来自非受限appdomain的securityexception

C# 来自非受限appdomain的securityexception,c#,sandbox,remoting,appdomain,C#,Sandbox,Remoting,Appdomain,我正在尝试将插件系统添加到我的应用程序中。我已经用一些有限的权限集创建了沙盒appdomain。当来自沙盒appdomain的代码引发本应在域中使用可信代码处理的事件时,问题就出现了。我创建了一个简单的应用程序来显示问题 using System; using System.IO; using System.Security; using System.Security.Permissions; namespace SandBoxTest { class Program {

我正在尝试将插件系统添加到我的应用程序中。我已经用一些有限的权限集创建了沙盒appdomain。当来自沙盒appdomain的代码引发本应在域中使用可信代码处理的事件时,问题就出现了。我创建了一个简单的应用程序来显示问题

using System;
using System.IO;
using System.Security;
using System.Security.Permissions;

namespace SandBoxTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var permissionSet = new PermissionSet(PermissionState.None);
            permissionSet.AddPermission(new SecurityPermission(SecurityPermissionFlag.AllFlags));
            permissionSet.AddPermission(new ReflectionPermission(PermissionState.Unrestricted));

            var setup = new AppDomainSetup
            {
                ApplicationBase = AppDomain.CurrentDomain.BaseDirectory
            };
            var sandBoxDomain = AppDomain.CreateDomain("Sandbox", null, setup, permissionSet);
            var remoteObject = sandBoxDomain.CreateInstanceAndUnwrap(typeof (RemoteObject).Assembly.FullName, typeof (RemoteObject).FullName) as RemoteObject;
            remoteObject.EventFromSandBox += HandlerInTrustedDomainOnEventFromSandBox;
            remoteObject.RaiseEventFromSandBox();

            Console.ReadKey();
        }

        private static void HandlerInTrustedDomainOnEventFromSandBox()
        {
            File.ReadAllText(@"C:\passwords.txt");
        }
    }

    class RemoteObject : MarshalByRefObject
    {
        public event Action EventFromSandBox;

        public void RaiseEventFromSandBox()
        {
            var handler = EventFromSandBox;
            if (handler != null) 
                handler();
        }
    }
}
在此示例中,引发对“System.Security.Permissions.FileIOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型权限的异常请求失败

我应该如何处理来自沙盒域的事件而不进行安全检查