In .:
[mono.git] / mono / tests / cas / appdomain / makepol.cs
1 using System;
2 using System.Diagnostics;
3 using System.IO;
4 using System.Drawing.Printing;
5 using System.Net;
6 using System.Security;
7 using System.Security.Permissions;
8 using System.Security.Policy;
9
10 class Program {
11
12         static PermissionSet CreatePermissionSet (string name)
13         {
14                 return new NamedPermissionSet (name, PermissionState.None);
15         }
16
17         static void Save (string filename, PermissionSet ps)
18         {
19                 using (StreamWriter sw = new StreamWriter (filename)) {
20                         sw.WriteLine (ps.ToXml ().ToString ());
21                         sw.Close ();
22                 }
23         }
24
25         public static void FullTrust ()
26         {
27                 PermissionSet ps = new NamedPermissionSet ("FullTrust", PermissionState.Unrestricted);
28                 Save ("fulltrust.xml", ps);
29         }
30
31         public static void LocalIntranet ()
32         {
33                 PermissionSet ps = CreatePermissionSet ("LocalIntranet");
34
35                 ps.AddPermission (new EnvironmentPermission (EnvironmentPermissionAccess.Read, "USERNAME;USER"));
36
37                 ps.AddPermission (new FileDialogPermission (PermissionState.Unrestricted));
38
39                 IsolatedStorageFilePermission isfp = new IsolatedStorageFilePermission (PermissionState.None);
40                 isfp.UsageAllowed = IsolatedStorageContainment.AssemblyIsolationByUser;
41                 isfp.UserQuota = Int64.MaxValue;
42                 ps.AddPermission (isfp);
43
44                 ps.AddPermission (new ReflectionPermission (ReflectionPermissionFlag.ReflectionEmit));
45
46                 SecurityPermissionFlag spf = SecurityPermissionFlag.Execution | SecurityPermissionFlag.Assertion;
47                 ps.AddPermission (new SecurityPermission (spf));
48
49                 ps.AddPermission (new UIPermission (PermissionState.Unrestricted));
50
51                 ps.AddPermission (new DnsPermission (PermissionState.Unrestricted));
52
53                 ps.AddPermission (new PrintingPermission (PrintingPermissionLevel.DefaultPrinting));
54
55                 ps.AddPermission (new EventLogPermission (EventLogPermissionAccess.Instrument, "."));
56
57                 Save ("intranet.xml", ps);
58         }
59
60         public static void Internet ()
61         {
62                 PermissionSet ps = CreatePermissionSet ("Internet");
63
64                 ps.AddPermission (new FileDialogPermission (FileDialogPermissionAccess.Open));
65
66                 IsolatedStorageFilePermission isfp = new IsolatedStorageFilePermission (PermissionState.None);
67                 isfp.UsageAllowed = IsolatedStorageContainment.DomainIsolationByUser;
68                 isfp.UserQuota = 10240;
69                 ps.AddPermission (isfp);
70
71                 ps.AddPermission (new SecurityPermission (SecurityPermissionFlag.Execution));
72
73                 ps.AddPermission (new UIPermission (UIPermissionWindow.SafeTopLevelWindows, UIPermissionClipboard.OwnClipboard));
74
75                 ps.AddPermission (new PrintingPermission (PrintingPermissionLevel.SafePrinting));
76
77                 Save ("internet.xml", ps);
78         }
79
80         public static void Execution ()
81         {
82                 PermissionSet ps = CreatePermissionSet ("Execution");
83
84                 ps.AddPermission (new SecurityPermission (SecurityPermissionFlag.Execution));
85
86                 Save ("execution.xml", ps);
87         }
88
89         public static void Nothing ()
90         {
91                 PermissionSet ps = CreatePermissionSet ("Nothing");
92                 Save ("nothing.xml", ps);
93         }
94
95         static int Main (string[] args)
96         {
97                 Console.WriteLine ("NOTE: All files are for test purposes only!");
98                 Console.WriteLine ("Creating the FullTrust default permissions file...");
99                 FullTrust ();
100                 Console.WriteLine ("Creating the Local Intranet default permissions file...");
101                 LocalIntranet ();
102                 Console.WriteLine ("Creating the Internet default permissions file...");
103                 Internet ();
104                 Console.WriteLine ("Creating the Execution default permissions file...");
105                 Execution ();
106                 Console.WriteLine ("Creating the Nothing default permissions file...");
107                 Nothing ();
108                 Console.WriteLine ("Completed.");
109                 return 0;
110         }
111 }