2012-04-24 84 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; 
     } 
    } 
} 

是有什麼內在的錯誤我在這裏做什麼?

回答