2 using System.Diagnostics;
4 using System.Drawing.Printing;
7 using System.Security.Permissions;
8 using System.Security.Policy;
12 static PermissionSet CreatePermissionSet (string name)
14 return new NamedPermissionSet (name, PermissionState.None);
17 static void Save (string filename, PermissionSet ps)
19 using (StreamWriter sw = new StreamWriter (filename)) {
20 sw.WriteLine (ps.ToXml ().ToString ());
25 public static void FullTrust ()
27 PermissionSet ps = new NamedPermissionSet ("FullTrust", PermissionState.Unrestricted);
28 Save ("fulltrust.xml", ps);
31 public static void LocalIntranet ()
33 PermissionSet ps = CreatePermissionSet ("LocalIntranet");
35 ps.AddPermission (new EnvironmentPermission (EnvironmentPermissionAccess.Read, "USERNAME;USER"));
37 ps.AddPermission (new FileDialogPermission (PermissionState.Unrestricted));
39 IsolatedStorageFilePermission isfp = new IsolatedStorageFilePermission (PermissionState.None);
40 isfp.UsageAllowed = IsolatedStorageContainment.AssemblyIsolationByUser;
41 isfp.UserQuota = Int64.MaxValue;
42 ps.AddPermission (isfp);
44 ps.AddPermission (new ReflectionPermission (ReflectionPermissionFlag.ReflectionEmit));
46 SecurityPermissionFlag spf = SecurityPermissionFlag.Execution | SecurityPermissionFlag.Assertion;
47 ps.AddPermission (new SecurityPermission (spf));
49 ps.AddPermission (new UIPermission (PermissionState.Unrestricted));
51 ps.AddPermission (new DnsPermission (PermissionState.Unrestricted));
53 ps.AddPermission (new PrintingPermission (PrintingPermissionLevel.DefaultPrinting));
55 ps.AddPermission (new EventLogPermission (EventLogPermissionAccess.Instrument, "."));
57 Save ("intranet.xml", ps);
60 public static void Internet ()
62 PermissionSet ps = CreatePermissionSet ("Internet");
64 ps.AddPermission (new FileDialogPermission (FileDialogPermissionAccess.Open));
66 IsolatedStorageFilePermission isfp = new IsolatedStorageFilePermission (PermissionState.None);
67 isfp.UsageAllowed = IsolatedStorageContainment.DomainIsolationByUser;
68 isfp.UserQuota = 10240;
69 ps.AddPermission (isfp);
71 ps.AddPermission (new SecurityPermission (SecurityPermissionFlag.Execution));
73 ps.AddPermission (new UIPermission (UIPermissionWindow.SafeTopLevelWindows, UIPermissionClipboard.OwnClipboard));
75 ps.AddPermission (new PrintingPermission (PrintingPermissionLevel.SafePrinting));
77 Save ("internet.xml", ps);
80 public static void Execution ()
82 PermissionSet ps = CreatePermissionSet ("Execution");
84 ps.AddPermission (new SecurityPermission (SecurityPermissionFlag.Execution));
86 Save ("execution.xml", ps);
89 public static void Nothing ()
91 PermissionSet ps = CreatePermissionSet ("Nothing");
92 Save ("nothing.xml", ps);
95 static int Main (string[] args)
97 Console.WriteLine ("NOTE: All files are for test purposes only!");
98 Console.WriteLine ("Creating the FullTrust default permissions file...");
100 Console.WriteLine ("Creating the Local Intranet default permissions file...");
102 Console.WriteLine ("Creating the Internet default permissions file...");
104 Console.WriteLine ("Creating the Execution default permissions file...");
106 Console.WriteLine ("Creating the Nothing default permissions file...");
108 Console.WriteLine ("Completed.");