Condividi tramite


ClaimsPrincipalPermissionAttribute Classe

Definizione

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à
ClaimsPrincipalPermissionAttribute
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.identityModelsystem.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)

Si applica a

Vedi anche