권한 보기 도구(Permview.exe)
업데이트: 2007년 11월
권한 보기 도구는 어셈블리에서 요청한 최소 권한 집합, 선택적 권한 집합 및 거부된 권한 집합을 보는 데 사용됩니다. 선택적으로 Permview.exe를 사용하여 어셈블리에서 사용하는 모든 선언적 보안을 볼 수도 있습니다. Permview.exe는 .NET Framework 버전 1.0 및 1.1에서만 사용할 수 있습니다.
permview [/output filename] [/decl] manifestfile
매개 변수
인수 |
설명 |
---|---|
manifestfile |
어셈블리의 매니페스트가 들어 있는 파일을 나타냅니다. 매니페스트는 독립 실행형 파일일 수도 있고 PE(이식 가능한 실행) 파일에 포함될 수도 있습니다. 이 파일의 확장명은 대개 .exe 또는 .dll이지만 .scr 또는 .ocx일 수도 있습니다. |
옵션 |
설명 |
---|---|
/decl |
manifestfile로 지정된 어셈블리에 대한 어셈블리, 클래스 및 메서드 수준의 모든 선언적 보안을 표시합니다. 여기에는 요청, 어설션 및 선언형으로 적용될 수 있는 기타 모든 보안 동작뿐만 아니라 권한 요청도 포함됩니다. 지정된 어셈블리에 연결되는 다른 어셈블리는 참조되지 않습니다. |
/h[elp] |
이 도구의 명령 구문 및 옵션을 표시합니다. |
/output filename |
출력 내용을 지정된 파일에 씁니다. 기본값은 출력 내용을 콘솔에 표시하는 것입니다. |
/? |
이 도구의 명령 구문 및 옵션을 표시합니다. |
설명
개발자는 Permview.exe를 사용하여 해당 코드에 권한 요청이 올바르게 적용되었는지 확인할 수 있습니다. 또한, 사용자는 Permview.exe를 사용하여 어셈블리에서 실행해야 하는 권한을 확인할 수 있습니다. 예를 들어, 관리되는 실행 파일을 실행하다가 "System.Security.Policy.PolicyException: Failed to acquire required permissions"라는 오류 메시지가 표시되는 경우, Permview.exe를 실행하여 실행 파일의 코드를 실행하기 전에 해당 코드에서 받아야 하는 권한을 확인할 수 있습니다.
예제
다음 명령을 사용하여 어셈블리 myAssembly.exe에서 요청한 권한을 콘솔에 표시합니다.
permview myAssembly.exe
myAssembly.exe에 FullTrust에 대한 최소 요청이 들어 있는 경우 다음과 같은 내용이 출력됩니다.
Microsoft (R) .NET Framework Permission Request Viewer. Version 1.0.2204.18 Copyright (C) Microsoft Corp. 1998-2000
minimal permission set:
<PermissionSet class="System.Security.PermissionSet" version ="1">
<Unrestricted/>
</PermissionSet>
optional permission set:
Not specified
refused permission set:
Not specified
다음 명령을 사용하여 myAssembly.exe 어셈블리에 대한 모든 선언적 보안을 콘솔에 표시합니다. 이 명령을 사용하면 메서드 수준의 보안 요청이 표시됩니다.
permview /decl myAssembly.exe
다음과 같이 출력됩니다.
Microsoft (R) .NET Framework Permission Request Viewer.
Version 1.0.2204.18 Copyright (C) Microsoft Corp. 1998-2000
Assembly RequestMinimum permission set:
<PermissionSet class="System.Security.PermissionSet" version ="1">
<Unrestricted/>
</PermissionSet>
Method A::myMethod() LinktimeCheck permission set:
<PermissionSet class="System.Security.PermissionSet" version="1">
<Permission class="System.Security.Permissions.ReflectionPermission,
mscorlib, Ver=1.0.2204.2, Loc='', SN=03689116d3a4ae33"
version="1">
<MemberAccess/>
</Permission>
</PermissionSet>
다음 명령을 사용하여 어셈블리 myAssembly.exe에서 요청한 권한을 myOutputFile 파일에 씁니다.
permview /output myOutputFile myAssembly.exe