2004-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / corlib / System.Security.Permissions / ZoneIdentityPermissionAttribute.cs
1 //
2 // System.Security.Permissions.ZoneIdentityPermissionAttribute.cs
3 //
4 // Author:
5 //      Duncan Mak <duncan@ximian.com>
6 //      Sebastien Pouliot (spouliot@motus.com)
7 //
8 // (C) 2002 Ximian, Inc. http://www.ximian.com
9 // Portions (C) 2003 Motus Technologies Inc. (http://www.motus.com)
10 //
11
12 using System;
13
14 namespace System.Security.Permissions {
15
16         [AttributeUsage (AttributeTargets.Assembly | AttributeTargets.Class |
17                          AttributeTargets.Struct | AttributeTargets.Constructor |
18                          AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
19         [Serializable]
20         public sealed class ZoneIdentityPermissionAttribute : CodeAccessSecurityAttribute {
21
22                 // Fields
23                 private SecurityZone zone;
24                 
25                 // Constructor
26                 public ZoneIdentityPermissionAttribute (SecurityAction action) : base (action) 
27                 {
28                         zone = SecurityZone.NoZone;
29                 }
30                 
31                 // Properties
32                 public SecurityZone Zone
33                 {
34                         get { return zone; }
35                         set { zone = value; }
36                 }
37                 
38                 // Methods
39                 public override IPermission CreatePermission ()
40                 {
41                         if (this.Unrestricted)
42                                 throw new ArgumentException ("Unsupported PermissionState.Unrestricted");
43
44                         return new ZoneIdentityPermission (zone);
45                 }
46         }
47 }