1 //------------------------------------------------------------------------------
\r
3 // System.Security.Permissions.SecurityPermissionAttribute.cs
\r
5 // Copyright (C) 2001 Nick Drochak, All Rights Reserved
\r
7 // Author: Nick Drochak, ndrochak@gol.com
\r
8 // Created: 2002-01-06
\r
10 //------------------------------------------------------------------------------
\r
13 using System.Security;
\r
14 using System.Security.Permissions;
\r
16 namespace System.Security.Permissions {
\r
17 [System.AttributeUsage(
\r
18 System.AttributeTargets.Assembly
\r
19 | System.AttributeTargets.Class
\r
20 | System.AttributeTargets.Struct
\r
21 | System.AttributeTargets.Constructor
\r
22 | System.AttributeTargets.Method,
\r
23 AllowMultiple=true,
\r
26 public sealed class SecurityPermissionAttribute : CodeAccessSecurityAttribute {
\r
27 private SecurityPermissionFlag m_Flags = SecurityPermissionFlag.NoFlags;
\r
29 public SecurityPermissionAttribute(SecurityAction action) : base(action) {
\r
30 if (!SecurityAction.IsDefined(typeof(SecurityAction), action)) {
\r
31 throw new System.ArgumentException();
\r
35 public bool Assertion {
\r
37 return ((m_Flags & SecurityPermissionFlag.Assertion) != 0);
\r
41 m_Flags |= SecurityPermissionFlag.Assertion;
\r
44 m_Flags -= SecurityPermissionFlag.Assertion;
\r
49 public bool ControlAppDomain {
\r
51 return ((m_Flags & SecurityPermissionFlag.ControlAppDomain) != 0);
\r
55 m_Flags |= SecurityPermissionFlag.ControlAppDomain;
\r
58 m_Flags -= SecurityPermissionFlag.ControlAppDomain;
\r
63 public bool ControlDomainPolicy {
\r
65 return ((m_Flags & SecurityPermissionFlag.ControlDomainPolicy) != 0);
\r
69 m_Flags |= SecurityPermissionFlag.ControlDomainPolicy;
\r
72 m_Flags -= SecurityPermissionFlag.ControlDomainPolicy;
\r
77 public bool ControlEvidence {
\r
79 return ((m_Flags & SecurityPermissionFlag.ControlEvidence) != 0);
\r
83 m_Flags |= SecurityPermissionFlag.ControlEvidence;
\r
86 m_Flags -= SecurityPermissionFlag.ControlEvidence;
\r
91 public bool ControlPolicy {
\r
93 return ((m_Flags & SecurityPermissionFlag.ControlPolicy) != 0);
\r
97 m_Flags |= SecurityPermissionFlag.ControlPolicy;
\r
100 m_Flags -= SecurityPermissionFlag.ControlPolicy;
\r
105 public bool ControlPrincipal {
\r
107 return ((m_Flags & SecurityPermissionFlag.ControlPrincipal) != 0);
\r
111 m_Flags |= SecurityPermissionFlag.ControlPrincipal;
\r
114 m_Flags -= SecurityPermissionFlag.ControlPrincipal;
\r
119 public bool ControlThread {
\r
121 return ((m_Flags & SecurityPermissionFlag.ControlThread) != 0);
\r
125 m_Flags |= SecurityPermissionFlag.ControlThread;
\r
128 m_Flags -= SecurityPermissionFlag.ControlThread;
\r
133 public bool Execution {
\r
135 return ((m_Flags & SecurityPermissionFlag.Execution) != 0);
\r
139 m_Flags |= SecurityPermissionFlag.Execution;
\r
142 m_Flags -= SecurityPermissionFlag.Execution;
\r
147 public bool Infrastructure {
\r
149 return ((m_Flags & SecurityPermissionFlag.Infrastructure) != 0);
\r
153 m_Flags |= SecurityPermissionFlag.Infrastructure;
\r
156 m_Flags -= SecurityPermissionFlag.Infrastructure;
\r
161 public bool RemotingConfiguration {
\r
163 return ((m_Flags & SecurityPermissionFlag.RemotingConfiguration) != 0);
\r
167 m_Flags |= SecurityPermissionFlag.RemotingConfiguration;
\r
170 m_Flags -= SecurityPermissionFlag.RemotingConfiguration;
\r
175 public bool SerializationFormatter {
\r
177 return ((m_Flags & SecurityPermissionFlag.SerializationFormatter) != 0);
\r
181 m_Flags |= SecurityPermissionFlag.SerializationFormatter;
\r
184 m_Flags -= SecurityPermissionFlag.SerializationFormatter;
\r
189 public bool SkipVerification {
\r
191 return ((m_Flags & SecurityPermissionFlag.SkipVerification) != 0);
\r
195 m_Flags |= SecurityPermissionFlag.SkipVerification;
\r
198 m_Flags -= SecurityPermissionFlag.SkipVerification;
\r
203 public override IPermission CreatePermission() {
\r
204 return new SecurityPermission(m_Flags);
\r
207 public SecurityPermissionFlag Flags {
\r
215 } // public sealed class SecurityPermissionAttribute
\r
216 } // namespace System.Security.Permissions
\r