ClaimsPrincipalPermissionAttribute 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.
Rappresenta un attributo di sicurezza utilizzato per assegnare i controlli di accesso in modo dichiarativo in base alla logica fornita dall'istanza di ClaimsAuthorizationManager nel contesto dell'applicazione corrente. La classe non può essere ereditata.
public ref class ClaimsPrincipalPermissionAttribute sealed : System::Security::Permissions::CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, AllowMultiple=true)]
public sealed class ClaimsPrincipalPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, AllowMultiple=true)>]
type ClaimsPrincipalPermissionAttribute = class
inherit CodeAccessSecurityAttribute
Public NotInheritable Class ClaimsPrincipalPermissionAttribute
Inherits CodeAccessSecurityAttribute
- Ereditarietà
- Attributi
Esempio
Nell'esempio seguente viene illustrato come proteggere un metodo decorata con l'attributo ClaimsPrincipalPermissionAttribute . L'attributo valuterà se l'accesso deve essere concesso all'entità corrente sfruttando la logica fornita dall'istanza ClaimsAuthorizationManager nel contesto dell'applicazione. Se l'entità corrente non è autorizzata per l'azione specificata nella risorsa specificata, viene generata un'operazione SecurityException ; in caso contrario, l'esecuzione procede.
//
// Declarative access check using the permission class. The caller must satisfy both demands.
//
[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "resource", Operation = "action")]
[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "resource1", Operation = "action1")]
static void ProtectedMethod()
{
}
Il codice XML seguente mostra la configurazione minima necessaria per usare una gestione autorizzazioni attestazioni personalizzata con la ClaimsPrincipalPermissionAttribute classe . È necessario, almeno, dichiarare sia le system.identityModel
system.identityModel.services
sezioni nell'elemento <configSection>
che specificare gestione autorizzazioni in un <elemento claimsAuthorizationManager> nella configurazione dell'identità predefinita. Ciò garantisce che il gestore di autorizzazioni venga fatto riferimento dalla configurazione della federazione predefinita. In alternativa, è possibile specificare il nome della configurazione dell'identità in cui viene specificato gestione autorizzazioni nell'attributo dell'elemento identityConfigurationName
<federationConfiguration> .
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<!-- WIF configuration sections -->
<section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.identityModel>
<identityConfiguration>
<claimsAuthorizationManager type ="MyClaimsAuthorizationManager.MyClaimsAuthorizationManager, MyClaimsAuthorizationManager"/>
</identityConfiguration>
</system.identityModel>
</configuration>
Commenti
Viene ClaimsPrincipalPermissionAttribute usato per richiedere in modo dichiarativo un controllo di accesso usando l'oggetto configurato ClaimsAuthorizationManager.
È necessario specificare uno dei SecurityAction valori, un Resource
e un Operation
nella ClaimsPrincipalPermissionAttribute dichiarazione. Le Resource
proprietà e Operation
specificano la risorsa e l'azione per cui l'entità corrente (Thread.CurrentPrincipal) deve essere autorizzata per l'esecuzione. Se l'entità corrente non è autorizzata a eseguire l'azione specificata (operazione) nella risorsa specificata, viene generata una SecurityException classe.
Importante
La ClaimsPrincipalPermissionAttribute classe usa la gestione autorizzazioni attestazioni configurata dall'oggetto IdentityConfigurationFederatedAuthentication.FederationConfiguration impostato nella proprietà . Questo vale in tutti i casi, anche negli scenari in cui WS-Federation non viene usato; Ad esempio, applicazioni Web attive (WCF) e applicazioni console. È possibile specificare gestione autorizzazioni attestazioni nella configurazione o a livello di codice. Per specificare la gestione autorizzazioni attestazioni in un file di configurazione, impostare l'elemento <claimsAuthorizationManager> in un <elemento identityConfiguration e assicurarsi che questa configurazione di identità venga fatto riferimento all'elemento federationConfiguration>>caricato dal runtime, ad esempio impostando l'attributo.<identityConfigurationName
Per impostare gestione autorizzazioni attestazioni a livello di codice, specificare un gestore per l'evento FederatedAuthentication.FederationConfigurationCreated .
Costruttori
ClaimsPrincipalPermissionAttribute(SecurityAction) |
Inizializza una nuova istanza della classe ClaimsPrincipalPermissionAttribute. |
Proprietà
Action |
Ottiene o imposta un'azione di sicurezza. (Ereditato da SecurityAttribute) |
Operation |
Ottiene o imposta l'operazione per la quale l'entità corrente deve essere autorizzata sulla risorsa specificata. |
Resource |
Ottiene o imposta la risorsa sulla quale l'entità deve essere autorizzata a eseguire l'azione (operazione) specificata. |
TypeId |
Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute) |
Unrestricted |
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() |
Crea una nuova istanza della classe ClaimsPrincipalPermission basata sull'istanza corrente. |
Equals(Object) |
Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
GetHashCode() |
Restituisce il codice hash per l'istanza. (Ereditato da Attribute) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IsDefaultAttribute() |
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) |
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() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
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) |
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) |
Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute) |