Re: Article: Permissions View Tool (Permview.exe .Net FrameWork Tools Series)
From: Alvin Bruney [MVP] (vapor)
Date: 11/02/04
- Next message: Nelson Xu: "OOP"
- Previous message: Mark Riley: "Announcemnt: New .NET Developer Resource"
- Next in thread: Richard Blewett: "Re: Article: Permissions View Tool (Permview.exe .Net FrameWork Tools Series)"
- Maybe reply: Richard Blewett: "Re: Article: Permissions View Tool (Permview.exe .Net FrameWork Tools Series)"
- Messages sorted by: [ date ] [ thread ]
Date: Mon, 1 Nov 2004 22:11:24 -0600
very nice, very thorough as well.
-- Regards, Alvin Bruney [ASP.NET MVP http://mvp.support.microsoft.com/default.aspx] Got tidbits? Get it here... http://tinyurl.com/27*** "Namratha Shah (Nasha)" <namratha1@gmail.com> wrote in message news:e7674ODwEHA.356@TK2MSFTNGP10.phx.gbl... > 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. > > 15) Let us add Declarative security to our MyClass as follows: > > [PrincipalPermission (SecurityAction.Demand, Role="Administrator")] // add > this above the class declaration > > 16) According to the above permission only those users who belong to the > "Administrator" role will be able to instantiate this class or call any > method on this class. > 17) Let us view the declarative security of this class. > 18) Go to the VS.NET command prompt and type the following command : > permview /decl WindowsApplication2.exe. > > Note : - "/decl" shows the declarative permissions set on the classs and > methods of the assembly. > > 19) You will see the class declarative permissions (as shown below) along > with the requested assembly permissions. > > Class WindowsApplication2.Class1 NonCasDemand permission set: > <PermissionSet class="System.Security.PermissionSet" > version="1"> > <Permission class="System.Security.Permissions.PrincipalPermission, > mscorlib, > Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > version="1"> > <Identity Authenticated="true" > ID="mycomputer\Administrator"/> > </Permission> > </PermissionSet> > > 20) You will be able to execute the method call if the current user is an > Administrator on the machine. > > In this way we can use Permview.exe to view the declarative and requested > permissions set on any assembly. > > There are 3 types of requested permissions which can be granted on > assembly > : > > Minimum permissions: (RequestMinimum) Permissions your code must have in > order to run. > Optional permissions: (RequestOptional) Permissions your code can use, > but can run effectively without. > Refused permissions: (RequestRefuse) Permissions that you want to > ensure will never be granted to your code, even if security policy allows > them to be granted. > > > -- Please post your queries and comments for my articles in the usergroup > for the benefit of all. I hope this step from my end is helpful to all of > us. > Regards, > > Namratha (Nasha) > > >
- Next message: Nelson Xu: "OOP"
- Previous message: Mark Riley: "Announcemnt: New .NET Developer Resource"
- Next in thread: Richard Blewett: "Re: Article: Permissions View Tool (Permview.exe .Net FrameWork Tools Series)"
- Maybe reply: Richard Blewett: "Re: Article: Permissions View Tool (Permview.exe .Net FrameWork Tools Series)"
- Messages sorted by: [ date ] [ thread ]