3 // Copyright (c) Microsoft Corporation. All rights reserved.
6 // GacIdentityPermission.cs
8 // <OWNER>[....]</OWNER>
11 namespace System.Security.Permissions
14 #if FEATURE_CAS_POLICY
15 using SecurityElement = System.Security.SecurityElement;
16 #endif // FEATURE_CAS_POLICY
17 using System.Globalization;
19 [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )]
20 [System.Runtime.InteropServices.ComVisible(true)]
22 #pragma warning disable 618
23 sealed public class GacIdentityPermissionAttribute : CodeAccessSecurityAttribute
24 #pragma warning restore 618
26 #pragma warning disable 618
27 public GacIdentityPermissionAttribute( SecurityAction action )
28 #pragma warning restore 618
33 public override IPermission CreatePermission()
35 return new GacIdentityPermission();
40 [System.Runtime.InteropServices.ComVisible(true)]
42 sealed public class GacIdentityPermission : CodeAccessPermission, IBuiltInPermission
44 //------------------------------------------------------
46 // PUBLIC CONSTRUCTORS
48 //------------------------------------------------------
50 public GacIdentityPermission(PermissionState state)
52 if (state != PermissionState.Unrestricted && state != PermissionState.None)
54 throw new ArgumentException(Environment.GetResourceString("Argument_InvalidPermissionState"));
58 public GacIdentityPermission()
62 //------------------------------------------------------
64 // IPERMISSION IMPLEMENTATION
66 //------------------------------------------------------
69 public override IPermission Copy()
71 return new GacIdentityPermission();
74 public override bool IsSubsetOf(IPermission target)
78 if (!(target is GacIdentityPermission))
79 throw new ArgumentException(Environment.GetResourceString("Argument_WrongType", this.GetType().FullName));
83 public override IPermission Intersect(IPermission target)
87 if (!(target is GacIdentityPermission))
88 throw new ArgumentException(Environment.GetResourceString("Argument_WrongType", this.GetType().FullName));
92 public override IPermission Union(IPermission target)
96 if (!(target is GacIdentityPermission))
97 throw new ArgumentException(Environment.GetResourceString("Argument_WrongType", this.GetType().FullName));
101 #if FEATURE_CAS_POLICY
102 public override SecurityElement ToXml()
104 SecurityElement securityElement = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.GacIdentityPermission" );
105 return securityElement;
108 public override void FromXml(SecurityElement securityElement)
110 CodeAccessPermission.ValidateElement(securityElement, this);
112 #endif // FEATURE_CAS_POLICY
115 int IBuiltInPermission.GetTokenIndex()
117 return GacIdentityPermission.GetTokenIndex();
120 internal static int GetTokenIndex()
122 return BuiltInPermissionIndex.GacIdentityPermissionIndex;