2 // System.Security.Permissions.RegistryPermissionAttribute.cs
5 // Duncan Mak <duncan@ximian.com>
6 // Sebastien Pouliot <spouliot@motus.com>
8 // (C) 2002 Ximian, Inc. http://www.ximian.com
9 // Portions Copyright (C) 2003 Motus Technologies (http://www.motus.com)
14 namespace System.Security.Permissions {
16 [AttributeUsage (AttributeTargets.Assembly | AttributeTargets.Class |
17 AttributeTargets.Struct | AttributeTargets.Constructor |
18 AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
20 public sealed class RegistryPermissionAttribute : CodeAccessSecurityAttribute {
23 private string create;
28 public RegistryPermissionAttribute (SecurityAction action) : base (action) {}
34 get { throw new NotSupportedException ("All"); }
45 get { return create; }
46 set { create = value; }
58 set { write = value; }
62 public override IPermission CreatePermission ()
64 RegistryPermission perm = null;
65 if (this.Unrestricted)
66 perm = new RegistryPermission (PermissionState.Unrestricted);
68 perm = new RegistryPermission (PermissionState.None);
70 perm.AddPathList (RegistryPermissionAccess.Create, create);
72 perm.AddPathList (RegistryPermissionAccess.Read, read);
74 perm.AddPathList (RegistryPermissionAccess.Write, write);