2012-04-24 54 views
2

我试图了解AppDomains和安全策略,但是我遇到了问题。单声道和应用程序域安全/权限集

单声道似乎不服从我的权限,我正在尝试沙箱AppDomain。

使用.NET它就像预期的那样运行 - 由于我完全没有设置权限,因此我得到安全权限错误。

在单声道它不会这样做。我尝试了Mono-2.6和Mono-2.10.8,单声道只是运行程序而没有任何错误。

C#代码,我使用.NET和单声道:

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; 
     } 
    } 
} 

是有什么内在的错误我在这里做什么?

回答