Hi All,
Permissions View Tool is shipped with .Net FrameWork. This tool is used to view the Declarative and Requested permissions set on an assembly.
So let us create an assembly set some requested and declarative permissions on it and view them with Permview.
Let us start by creating an assembly and setting some Requested permissions on it.
1) Open a new WindowsApplication.
2) Add a button to the form named Button1.
3) Add a Class to this Application Named MyClass.
4) Add a method to this class named Add which adds to numbers and returns the result.
5) In the Button Click event of Button1 call the Add method of the MyClass as shown below.
MyClass myClass = new MyClass();
MessageBox.Show(myClass.Add(1,2).ToString());
6) Run the application. click on the Button and you will get the result as "3".Now we will add requested permission to this assembly.
7) Go to AssemblyInfo.cs and add the below lines
[assembly: FileIOPermission(SecurityAction.RequestMinimum,Write="c:\\")]
[assembly: UIPermission(SecurityAction.RequestRefuse, Window = UIPermissionWindow.AllWindows)]
By setting these permissions we say that to execute this application minimum write permission on C: is required. Along with that we have also requested an another UI permission which refuses to show any windows on the screen hence no forms or message boxes will be displayed.
8) Run the application. The form will not be loaded instead you will see the below error message:
Additional information: Request for the permission of type System.Security.Permissions.UIPermission, mscorlib, Version=1.0.3300.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089 failed.
9) We can vew the permissions set on an assembly with permview.exe.
10) Go to VS.Net command prompt and go to the folder which contains your application exe.
11) Type the following command :permview WindowsApplication2.exe <or your application name>
12) You will see all the permissions set on the assembly as below:
minimal permission set:
<PermissionSet class="System.Security.PermissionSet"
version="1">
<IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=1.0.3300.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089" version="1" Write="c:\"/>
</PermissionSet>
optional permission set:
Not specified
refused permission set:
<PermissionSet class="System.Security.PermissionSet"
version="1">
<IPermission class="System.Security.Permissions.UIPermission, mscorlib, Versi
on=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Window="AllWindows"/>
</PermissionSet>
13) Since we have set RequestRefuse permission for UIPermission we were unable to see the form so let us change that to RequestOptional as follows :
[assembly: UIPermission(SecurityAction.RequestOptional, Window = UIPermissionWindow.AllWindows)]
These permissions on the assesmbly that we saw were erquested permissions on the assembly. Permview is also used to view declarative security on classes or methods.