C# 来自非受限appdomain的securityexception
我正在尝试将插件系统添加到我的应用程序中。我已经用一些有限的权限集创建了沙盒appdomain。当来自沙盒appdomain的代码引发本应在域中使用可信代码处理的事件时,问题就出现了。我创建了一个简单的应用程序来显示问题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 {
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”类型权限的异常请求失败
我应该如何处理来自沙盒域的事件而不进行安全检查