2011-03-02 6 views
0

나는 장식하는 방법과 클래스 라이브러리를 포함하는 솔루션을 상속 :PermissionSet - 어셈블리의 보안 제한은 어디에 설정됩니까?

[PermissionSet(SecurityAction.Assert, Name = "FullTrust")] 

내가 그 속성을 주석 경우, 그 방법은 다음과 같은 예외가 발생하기 때문에 속성은 분명히 필요합니다

System.Security.SecurityException : 형식의 허가 'System.Security.Permissions.FileIOPermission, mscorlib에 대한 요청, 버전 = 4.0.0.0, 문화 = 중립, PublicKeyToken = b77a5c5 61934e089 ' 실패했습니다.

는 지금까지 내가,이 어셈블리를 참조하는 실행 내가 실행의 app.manifest에서 볼 때 beccause, 완전 신뢰에서 실행 볼 수있는, 내가 볼 수 있습니다 : I로

<requestedExecutionLevel level="asInvoker" uiAccess="false" /> 

내 Visual Studio를 관리자로 실행하면 디버그을 누르면 관리자 모드에서 실행 파일이 실행되므로 전체 권한이 있어야합니다 (전적으로 오해를 불러 일으킬 수도 있음).

라이브러리의 AssemblyInfo에는 보안 제한에 대해 흥미로운 점이없는 것 같습니다.

그래서이 라이브러리가 낮은 신뢰 수준에서 시작하여 실행되는 이유를 알 수 없습니다. 누군가이 제한적인 보안 정책이 설정되는 곳을보아야 할 가능한 모든 장소를 말해 줄 수 있습니까?

(이 프로젝트는 .net 3.5에서 설계되었지만 현재는 4.0에서 작동하도록 업그레이드하는 것이 중요합니다.) 최신 버전입니다.)

답변

0

확인을 찾았습니다. 보안 제한은 어셈블리가로드되는 AppDomain에있었습니다. 원래 어셈블리가 정적으로 호출되었다고 생각했지만 런타임에 새로운 AppDomain으로로드됩니다.

관련 문제