2012-04-24 3 views
2

AppDomains 및 보안 정책을 이해하려고하는데 문제가 있습니다.모노 및 appdomain 보안/권한 부여 집합

모노는 나를 위해 권한을 준수하지 않는 것처럼 보입니다. AppDomain을 샌드 박스로 만들려고합니다.

.NET을 사용하면 예상대로 실행됩니다. 권한이 설정되지 않았으므로 보안 권한 오류가 발생합니다.

모노에서는이 작업을 수행하지 않습니다. Mono-2.6과 Mono-2.10.8을 모두 시험해 보았습니다. 모노는 오류없이 프로그램을 실행합니다.

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

내가 여기서 뭘하는지 본질적으로 뭔가 문제가있다 : 나는 .NET 및 모노 모두 사용

C# 코드?

답변