我正在尝试了解 AppDomains - 和安全策略,但是我遇到了问题。
Mono 似乎没有服从我的权限,我正在尝试对 AppDomain 进行沙箱处理。
使用 .NET 它按预期运行 - 我收到安全权限错误,因为我完全没有设置权限。
在 Mono 下,它不会这样做。我尝试了 Mono-2.6 和 Mono-2.10.8,mono 只是运行程序而没有任何错误。
我用于 .NET 和单声道的 C# 代码:
namespace AppDomainTest
{
class Program
{
private static AppDomain _domain;
static void Main(string[] args)
{
AppDomainSetup info = new AppDomainSetup
{
ApplicationName = "AppDomainTest",
ApplicationBase = Environment.CurrentDirectory,
};
PermissionSet permSet = new PermissionSet(PermissionState.None);
//permSet.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
// permSet.AddPermission(new FileIOPermission(PermissionState.Unrestricted));
_domain = AppDomain.CreateDomain("TestDomain", null, info, permSet);
TestObj o = (TestObj)_domain.CreateInstanceAndUnwrap(typeof(TestObj).Assembly.FullName, "AppDomainTest.TestObj");
Console.WriteLine(o.GetDomainName());
}
}
public class TestObj : MarshalByRefObject
{
public string GetDomainName()
{
return AppDomain.CurrentDomain.FriendlyName;
}
}
}
我在这里做的事情有什么本质上的问题吗?