Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / Security / Attributes.cs / 2 / Attributes.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
using System.Runtime.InteropServices;
namespace System.Security
{
// DynamicSecurityMethodAttribute:
// Indicates that calling the target method requires space for a security
// object to be allocated on the callers stack. This attribute is only ever
// set on certain security methods defined within mscorlib.
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true, Inherited = false )]
sealed internal class DynamicSecurityMethodAttribute : System.Attribute
{
}
// SuppressUnmanagedCodeSecurityAttribute:
// Indicates that the target P/Invoke method(s) should skip the per-call
// security checked for unmanaged code permission.
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = true, Inherited = false )]
[System.Runtime.InteropServices.ComVisible(true)]
sealed public class SuppressUnmanagedCodeSecurityAttribute : System.Attribute
{
}
// UnverifiableCodeAttribute:
// Indicates that the target module contains unverifiable code.
[AttributeUsage(AttributeTargets.Module, AllowMultiple = true, Inherited = false )]
[System.Runtime.InteropServices.ComVisible(true)]
sealed public class UnverifiableCodeAttribute : System.Attribute
{
}
// AllowPartiallyTrustedCallersAttribute:
// Indicates that the Assembly is secure and can be used by untrusted
// and semitrusted clients
// For v.1, this is valid only on Assemblies, but could be expanded to
// include Module, Method, class
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false, Inherited = false )]
[System.Runtime.InteropServices.ComVisible(true)]
sealed public class AllowPartiallyTrustedCallersAttribute : System.Attribute
{
public AllowPartiallyTrustedCallersAttribute () { }
}
public enum SecurityCriticalScope
{
Explicit = 0,
Everything = 0x1
}
// SecurityCriticalAttribute
// Indicates that the decorated code or assembly performs security critical operations (e.g. Assert, "unsafe", LinkDemand, etc.)
// The attribute can be placed on most targets, except on arguments/return values.
// The attribute applies only to the specific target and not to everything underneath it (similar to 'public' qualifier)
// i.e. marking an assembly SecurityCritical doesn't imply all types within the assembly are critical,
// and similarly marking a type critical doesn't imply all of its members are critical
// For code to perform security critical actions, both the code (e.g. method, field, etc.) and the assembly must be decorated
// with the SecurityCriticalAttribute.
[AttributeUsage(AttributeTargets.Assembly |
AttributeTargets.Module |
AttributeTargets.Class |
AttributeTargets.Struct |
AttributeTargets.Enum |
AttributeTargets.Constructor |
AttributeTargets.Method |
AttributeTargets.Property |
AttributeTargets.Field |
AttributeTargets.Event |
AttributeTargets.Interface |
AttributeTargets.Delegate,
AllowMultiple = false,
Inherited = false )]
sealed public class SecurityCriticalAttribute : System.Attribute
{
internal SecurityCriticalScope _val;
public SecurityCriticalAttribute () {}
public SecurityCriticalAttribute(SecurityCriticalScope scope)
{
_val = scope;
}
public SecurityCriticalScope Scope {
get {
return _val;
}
}
}
// SecurityTreatAsSafeAttribute:
// Indicates that the code may contain violations to the security critical rules (e.g. transitions from
// critical to non-public transparent, transparent to non-public critical, etc.), has been audited for
// security concerns and is considered security clean.
// At assembly-scope, all rule checks will be suppressed within the assembly and for calls made against the assembly.
// At type-scope, all rule checks will be suppressed for members within the type and for calls made against the type.
// At member level (e.g. field and method) the code will be treated as public - i.e. no rule checks for the members.
[AttributeUsage(AttributeTargets.All,
AllowMultiple = false,
Inherited = false )]
sealed public class SecurityTreatAsSafeAttribute : System.Attribute
{
public SecurityTreatAsSafeAttribute () { }
}
// SecuritySafeCriticalAttribute:
// Indicates that the code may contain violations to the security critical rules (e.g. transitions from
// critical to non-public transparent, transparent to non-public critical, etc.), has been audited for
// security concerns and is considered security clean. Also indicates that the code is considered SecurityCritical.
// The effect of this attribute is as if the code was marked [SecurityCritical][SecurityTreatAsSafe].
// At assembly-scope, all rule checks will be suppressed within the assembly and for calls made against the assembly.
// At type-scope, all rule checks will be suppressed for members within the type and for calls made against the type.
// At member level (e.g. field and method) the code will be treated as public - i.e. no rule checks for the members.
[AttributeUsage(AttributeTargets.All,
AllowMultiple = false,
Inherited = false )]
sealed public class SecuritySafeCriticalAttribute : System.Attribute
{
public SecuritySafeCriticalAttribute () { }
}
// SecurityTransparentAttribute:
// Indicates the assembly contains only transparent code.
// Security critical actions will be restricted or converted into less critical actions. For example,
// Assert will be restricted, SuppressUnmanagedCode, LinkDemand, unsafe, and unverifiable code will be converted
// into Full-Demands.
[AttributeUsage(AttributeTargets.Assembly,
AllowMultiple = false,
Inherited = false )]
sealed public class SecurityTransparentAttribute : System.Attribute
{
public SecurityTransparentAttribute () {}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
using System.Runtime.InteropServices;
namespace System.Security
{
// DynamicSecurityMethodAttribute:
// Indicates that calling the target method requires space for a security
// object to be allocated on the callers stack. This attribute is only ever
// set on certain security methods defined within mscorlib.
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true, Inherited = false )]
sealed internal class DynamicSecurityMethodAttribute : System.Attribute
{
}
// SuppressUnmanagedCodeSecurityAttribute:
// Indicates that the target P/Invoke method(s) should skip the per-call
// security checked for unmanaged code permission.
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = true, Inherited = false )]
[System.Runtime.InteropServices.ComVisible(true)]
sealed public class SuppressUnmanagedCodeSecurityAttribute : System.Attribute
{
}
// UnverifiableCodeAttribute:
// Indicates that the target module contains unverifiable code.
[AttributeUsage(AttributeTargets.Module, AllowMultiple = true, Inherited = false )]
[System.Runtime.InteropServices.ComVisible(true)]
sealed public class UnverifiableCodeAttribute : System.Attribute
{
}
// AllowPartiallyTrustedCallersAttribute:
// Indicates that the Assembly is secure and can be used by untrusted
// and semitrusted clients
// For v.1, this is valid only on Assemblies, but could be expanded to
// include Module, Method, class
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false, Inherited = false )]
[System.Runtime.InteropServices.ComVisible(true)]
sealed public class AllowPartiallyTrustedCallersAttribute : System.Attribute
{
public AllowPartiallyTrustedCallersAttribute () { }
}
public enum SecurityCriticalScope
{
Explicit = 0,
Everything = 0x1
}
// SecurityCriticalAttribute
// Indicates that the decorated code or assembly performs security critical operations (e.g. Assert, "unsafe", LinkDemand, etc.)
// The attribute can be placed on most targets, except on arguments/return values.
// The attribute applies only to the specific target and not to everything underneath it (similar to 'public' qualifier)
// i.e. marking an assembly SecurityCritical doesn't imply all types within the assembly are critical,
// and similarly marking a type critical doesn't imply all of its members are critical
// For code to perform security critical actions, both the code (e.g. method, field, etc.) and the assembly must be decorated
// with the SecurityCriticalAttribute.
[AttributeUsage(AttributeTargets.Assembly |
AttributeTargets.Module |
AttributeTargets.Class |
AttributeTargets.Struct |
AttributeTargets.Enum |
AttributeTargets.Constructor |
AttributeTargets.Method |
AttributeTargets.Property |
AttributeTargets.Field |
AttributeTargets.Event |
AttributeTargets.Interface |
AttributeTargets.Delegate,
AllowMultiple = false,
Inherited = false )]
sealed public class SecurityCriticalAttribute : System.Attribute
{
internal SecurityCriticalScope _val;
public SecurityCriticalAttribute () {}
public SecurityCriticalAttribute(SecurityCriticalScope scope)
{
_val = scope;
}
public SecurityCriticalScope Scope {
get {
return _val;
}
}
}
// SecurityTreatAsSafeAttribute:
// Indicates that the code may contain violations to the security critical rules (e.g. transitions from
// critical to non-public transparent, transparent to non-public critical, etc.), has been audited for
// security concerns and is considered security clean.
// At assembly-scope, all rule checks will be suppressed within the assembly and for calls made against the assembly.
// At type-scope, all rule checks will be suppressed for members within the type and for calls made against the type.
// At member level (e.g. field and method) the code will be treated as public - i.e. no rule checks for the members.
[AttributeUsage(AttributeTargets.All,
AllowMultiple = false,
Inherited = false )]
sealed public class SecurityTreatAsSafeAttribute : System.Attribute
{
public SecurityTreatAsSafeAttribute () { }
}
// SecuritySafeCriticalAttribute:
// Indicates that the code may contain violations to the security critical rules (e.g. transitions from
// critical to non-public transparent, transparent to non-public critical, etc.), has been audited for
// security concerns and is considered security clean. Also indicates that the code is considered SecurityCritical.
// The effect of this attribute is as if the code was marked [SecurityCritical][SecurityTreatAsSafe].
// At assembly-scope, all rule checks will be suppressed within the assembly and for calls made against the assembly.
// At type-scope, all rule checks will be suppressed for members within the type and for calls made against the type.
// At member level (e.g. field and method) the code will be treated as public - i.e. no rule checks for the members.
[AttributeUsage(AttributeTargets.All,
AllowMultiple = false,
Inherited = false )]
sealed public class SecuritySafeCriticalAttribute : System.Attribute
{
public SecuritySafeCriticalAttribute () { }
}
// SecurityTransparentAttribute:
// Indicates the assembly contains only transparent code.
// Security critical actions will be restricted or converted into less critical actions. For example,
// Assert will be restricted, SuppressUnmanagedCode, LinkDemand, unsafe, and unverifiable code will be converted
// into Full-Demands.
[AttributeUsage(AttributeTargets.Assembly,
AllowMultiple = false,
Inherited = false )]
sealed public class SecurityTransparentAttribute : System.Attribute
{
public SecurityTransparentAttribute () {}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BuildProvider.cs
- XmlSchemaComplexType.cs
- Span.cs
- TypedElement.cs
- HttpClientCertificate.cs
- BrowserDefinition.cs
- TableItemProviderWrapper.cs
- RangeValuePatternIdentifiers.cs
- Timeline.cs
- StreamGeometryContext.cs
- ValueUtilsSmi.cs
- X509Utils.cs
- User.cs
- FixedSchema.cs
- CookieProtection.cs
- TextTreeTextBlock.cs
- WebServiceClientProxyGenerator.cs
- CopyNodeSetAction.cs
- TakeQueryOptionExpression.cs
- ParseHttpDate.cs
- DbModificationClause.cs
- CodeTypeReferenceExpression.cs
- SqlNodeAnnotations.cs
- ObjectTypeMapping.cs
- CharacterHit.cs
- GACMembershipCondition.cs
- NativeWindow.cs
- ITreeGenerator.cs
- WindowsScroll.cs
- LineSegment.cs
- ThaiBuddhistCalendar.cs
- SystemUdpStatistics.cs
- SelectionWordBreaker.cs
- DataGridrowEditEndingEventArgs.cs
- LambdaCompiler.ControlFlow.cs
- UnauthorizedAccessException.cs
- MyContact.cs
- MessageFault.cs
- NameObjectCollectionBase.cs
- XPathParser.cs
- TemplateApplicationHelper.cs
- Assert.cs
- GenericTypeParameterConverter.cs
- XmlLoader.cs
- MenuAutomationPeer.cs
- GenericFlowSwitchHelper.cs
- TypefaceMap.cs
- AsyncOperationManager.cs
- ProfileModule.cs
- ImageFormat.cs
- Bidi.cs
- TakeOrSkipWhileQueryOperator.cs
- ConfigXmlSignificantWhitespace.cs
- AsyncDataRequest.cs
- PartialTrustVisibleAssembly.cs
- sqlmetadatafactory.cs
- ObjectDataSource.cs
- PropertyEmitterBase.cs
- ToolConsole.cs
- FileEnumerator.cs
- X500Name.cs
- OneWayBindingElement.cs
- Interlocked.cs
- Parameter.cs
- CellPartitioner.cs
- ZipIOCentralDirectoryBlock.cs
- InternalBase.cs
- ObjectMaterializedEventArgs.cs
- _Connection.cs
- SQLMoneyStorage.cs
- WindowHelperService.cs
- TableLayoutSettingsTypeConverter.cs
- Light.cs
- BaseTreeIterator.cs
- ControlsConfig.cs
- XdrBuilder.cs
- SpecularMaterial.cs
- SingleBodyParameterMessageFormatter.cs
- XDRSchema.cs
- BrowserCapabilitiesCompiler.cs
- DesignerDataTable.cs
- ScriptReferenceBase.cs
- ZipIOLocalFileHeader.cs
- ServicePoint.cs
- SymmetricAlgorithm.cs
- ListViewGroup.cs
- TextServicesLoader.cs
- Globals.cs
- InfoCardTrace.cs
- Win32PrintDialog.cs
- XPathDocumentBuilder.cs
- ByteStream.cs
- ButtonPopupAdapter.cs
- DynamicControl.cs
- ServiceChannelProxy.cs
- Matrix3D.cs
- Models.cs
- Psha1DerivedKeyGenerator.cs
- Point.cs
- MsmqIntegrationChannelListener.cs