CodeAccessSecurityAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Attenzione
Code Access Security is not supported or honored by the runtime.
Attenzione
CAS support is not available with Silverlight applications.
Specifica la classe Attribute di base per la sicurezza per l’accesso al codice.
public ref class CodeAccessSecurityAttribute abstract : System::Security::Permissions::SecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public abstract class CodeAccessSecurityAttribute : System.Security.Permissions.SecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
public abstract class CodeAccessSecurityAttribute : System.Security.Permissions.SecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Serializable]
public abstract class CodeAccessSecurityAttribute : System.Security.Permissions.SecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class CodeAccessSecurityAttribute : System.Security.Permissions.SecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Obsolete("CAS support is not available with Silverlight applications.")]
public abstract class CodeAccessSecurityAttribute : System.Security.Permissions.SecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type CodeAccessSecurityAttribute = class
inherit SecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
type CodeAccessSecurityAttribute = class
inherit SecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Serializable>]
type CodeAccessSecurityAttribute = class
inherit SecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CodeAccessSecurityAttribute = class
inherit SecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Obsolete("CAS support is not available with Silverlight applications.")>]
type CodeAccessSecurityAttribute = class
inherit SecurityAttribute
Public MustInherit Class CodeAccessSecurityAttribute
Inherits SecurityAttribute
- Ereditarietà
- Derivato
- Attributi
Esempio
Nell'esempio seguente viene illustrato un attributo di autorizzazione derivato dalla CodeAccessSecurityAttribute classe .
using namespace System;
using namespace System::IO;
using namespace System::Runtime::Remoting;
using namespace System::Security;
using namespace System::Security::Permissions;
using namespace System::Reflection;
using namespace MyPermission;
// Use the command line option '/keyfile' or appropriate project settings to sign this assembly.
[assembly:System::Security::AllowPartiallyTrustedCallersAttribute];
[AttributeUsage(AttributeTargets::Method|AttributeTargets::Constructor|AttributeTargets::Class|AttributeTargets::Struct|AttributeTargets::Assembly,AllowMultiple=true,Inherited=false)]
[Serializable]
public ref class NameIdPermissionAttribute: public CodeAccessSecurityAttribute
{
private:
String^ m_Name;
bool m_unrestricted;
public:
NameIdPermissionAttribute( SecurityAction action )
: CodeAccessSecurityAttribute( action )
{
m_Name = nullptr;
m_unrestricted = false;
}
property String^ Name
{
String^ get()
{
return m_Name;
}
void set( String^ value )
{
m_Name = value;
}
}
virtual IPermission^ CreatePermission() override
{
if ( m_unrestricted )
{
throw gcnew ArgumentException( "Unrestricted permissions not allowed in identity permissions." );
}
else
{
if ( m_Name == nullptr )
return gcnew NameIdPermission( PermissionState::None );
return gcnew NameIdPermission( m_Name );
}
}
};
using System;
using System.IO;
using System.Runtime.Remoting;
using System.Security;
using System.Security.Permissions;
using System.Reflection;
using MyPermission;
// Use the command line option '/keyfile' or appropriate project settings to sign this assembly.
[assembly: System.Security.AllowPartiallyTrustedCallersAttribute ()]
namespace MyPermissionAttribute
{
[AttributeUsage (AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false)]
[Serializable]
sealed public class NameIdPermissionAttribute : CodeAccessSecurityAttribute
{
private String m_Name = null;
private bool m_unrestricted = false;
public NameIdPermissionAttribute (SecurityAction action): base( action )
{
}
public String Name
{
get { return m_Name; }
set { m_Name = value; }
}
public override IPermission CreatePermission ()
{
if (m_unrestricted)
{
throw new ArgumentException ("Unrestricted permissions not allowed in identity permissions.");
}
else
{
if (m_Name == null)
return new NameIdPermission (PermissionState.None);
return new NameIdPermission (m_Name);
}
}
}
}
Imports System.IO
Imports System.Runtime.Remoting
Imports System.Security
Imports System.Security.Permissions
Imports System.Reflection
Imports MyPermission
' Use the command line option '/keyfile' or appropriate project settings to sign this assembly.
<Assembly: System.Security.AllowPartiallyTrustedCallersAttribute()>
Namespace MyPermissionAttribute
<AttributeUsage(AttributeTargets.All, AllowMultiple:=True, Inherited:=False)> Public NotInheritable Class NameIdPermissionAttribute
Inherits CodeAccessSecurityAttribute
Private m_Name As String = Nothing
Private m_unrestricted As Boolean = False
Public Sub New(ByVal action As SecurityAction)
MyBase.New(action)
End Sub
Public Property Name() As String
Get
Return m_name
End Get
Set(ByVal Value As String)
m_name = Value
End Set
End Property
Public Overrides Function CreatePermission() As IPermission
If m_unrestricted Then
Throw New ArgumentException("Unrestricted permissions not allowed in identity permissions.")
Else
If m_name Is Nothing Then
Return New NameIdPermission(PermissionState.None)
End If
Return New NameIdPermission(m_name)
End If
End Function 'CreatePermission
End Class
End Namespace
Commenti
Attenzione
La sicurezza dall'accesso al codice è stata deprecata in tutte le versioni di .NET Framework e .NET. Le versioni recenti di .NET non rispettano le annotazioni CAS e generano errori se vengono usate API correlate a CAS. Gli sviluppatori devono cercare metodi alternativi per eseguire attività di sicurezza.
Questa classe di attributi associa un SecurityActionoggetto , ad esempio , Demand
a un attributo di sicurezza personalizzato.
I tipi che derivano da CodeAccessSecurityAttribute vengono usati per limitare l'accesso alle risorse o alle operazioni a protezione diretta.
Le informazioni di sicurezza dichiarate da un attributo di sicurezza vengono archiviate nei metadati della destinazione dell'attributo e sono accessibili dal sistema in fase di esecuzione. Gli attributi di sicurezza vengono usati solo per la sicurezza dichiarativa. Usare la classe di autorizzazione corrispondente derivata da CodeAccessPermission per la sicurezza imperativa.
Note per gli implementatori
Tutti gli attributi di autorizzazione derivati da questa classe devono avere un solo costruttore che accetta come unico parametro un SecurityAction oggetto .
Costruttori
CodeAccessSecurityAttribute(SecurityAction) |
Obsoleti.
Obsoleti.
Inizializza una nuova istanza di CodeAccessSecurityAttribute con l'oggetto SecurityAction specificato. |
Proprietà
Action |
Obsoleti.
Obsoleti.
Ottiene o imposta un'azione di sicurezza. (Ereditato da SecurityAttribute) |
TypeId |
Obsoleti.
Obsoleti.
Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute) |
Unrestricted |
Obsoleti.
Obsoleti.
Ottiene o imposta un valore che indica se esiste una dichiarazione di autorizzazione completa, ovvero senza restrizioni, alla risorsa protetta dall’attributo. (Ereditato da SecurityAttribute) |
Metodi
CreatePermission() |
Obsoleti.
Obsoleti.
In caso di override in una classe derivata, crea un oggetto autorizzazioni che può quindi essere serializzato in formato binario e archiviato definitivamente con SecurityAction nei metadati di un assembly. (Ereditato da SecurityAttribute) |
Equals(Object) |
Obsoleti.
Obsoleti.
Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
GetHashCode() |
Obsoleti.
Obsoleti.
Restituisce il codice hash per l'istanza. (Ereditato da Attribute) |
GetType() |
Obsoleti.
Obsoleti.
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IsDefaultAttribute() |
Obsoleti.
Obsoleti.
In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute) |
Match(Object) |
Obsoleti.
Obsoleti.
Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute) |
MemberwiseClone() |
Obsoleti.
Obsoleti.
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Obsoleti.
Obsoleti.
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Obsoleti.
Obsoleti.
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Obsoleti.
Obsoleti.
Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Obsoleti.
Obsoleti.
Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Obsoleti.
Obsoleti.
Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute) |