파일 시스템에 대한 읽기 전용 액세스 권한이있는 샌드 박스 응용 프로그램 도메인을 만들려고합니다. 나는이 작업을 수행하기 위해 작성한 코드는보안 수준이 낮은 응용 프로그램 도메인에 어셈블리로드
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을 사용하고 있습니다.
감사를 필요가 있다고 생각합니다. – Gavin