2012-01-31 2 views
2

파일 시스템에 대한 읽기 전용 액세스 권한이있는 샌드 박스 응용 프로그램 도메인을 만들려고합니다. 나는이 작업을 수행하기 위해 작성한 코드는보안 수준이 낮은 응용 프로그램 도메인에 어셈블리로드

var ps = new PermissionSet(PermissionState.None); 
    ps.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution)); 
    var f = new FileIOPermission(PermissionState.None); 
    f.AllLocalFiles = FileIOPermissionAccess.Read; 
    ps.AddPermission(f); 

    AppDomain domain = AppDomain.CreateDomain("MyDomain", 
     null, 
     new AppDomainSetup { ApplicationBase = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) }, 
     ps     
     ); 
    string pathToDll = @"c:\temp\test.dll"; 
    string thirdPartyFullName = "MyTest.Test"; 
    IPlugin myObject = (IPlugin)domain.CreateInstanceFromAndUnwrap(pathToDll, thirdPartyFullName); 

입니다 그것은 이 예외 유형 'System.Security.Permissions의 허가

요청과 마지막 줄에 오류를 제외하고 거의 작품 .FileIOPermission, mscorlib, 버전 = 4.0.0.0, 문화 = 중립, PublicKeyToken = b77a5c561934e089 ' 실패했습니다.

앱 도메인의 FileIOPermission을 완전히 액세스 할 수 있도록 변경하면 정상적으로 실행됩니다. 어셈블리에서 변경해야 할 부분이 있습니까? 응용 프로그램 도메인에로드되어 파일 시스템에 대한 읽기 액세스 만 필요하다고 말하고 있습니까?

.Net 4.0을 사용하고 있습니다.

답변

관련 문제