Condividi tramite


ClaimsPrincipal Classe

Definizione

Implementazione di IPrincipal che supporta più identità basate sulle attestazioni.

public ref class ClaimsPrincipal : System::Security::Principal::IPrincipal
public class ClaimsPrincipal : System.Security.Principal.IPrincipal
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ClaimsPrincipal : System.Security.Principal.IPrincipal
type ClaimsPrincipal = class
    interface IPrincipal
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type ClaimsPrincipal = class
    interface IPrincipal
Public Class ClaimsPrincipal
Implements IPrincipal
Ereditarietà
ClaimsPrincipal
Derivato
Attributi
Implementazioni

Esempio

Nell'esempio seguente vengono estratte le attestazioni presentate da un utente in una richiesta HTTP e le scrive nella risposta HTTP. L'utente corrente viene letto dall'oggetto HttpContext come ClaimsPrincipal. Le attestazioni vengono quindi lette da esso e quindi vengono scritte nella risposta.

if (HttpContext.Current.User is ClaimsPrincipal principal)
{
   foreach (Claim claim in principal.Claims)
   {
      Response.Write("CLAIM TYPE: " + claim.Type + "; CLAIM VALUE: " + claim.Value + "</br>");
   }
}

Commenti

A partire da .NET Framework 4.5, Windows Identity Foundation (WIF) e l'identità basata su attestazioni sono completamente integrate in .NET Framework. Ciò significa che molte classi che rappresentano un'entità in .NET Framework derivano ClaimsPrincipal da anziché semplicemente implementare l'interfaccia IPrincipal . Oltre a implementare l'interfaccia, ClaimsPrincipal espone proprietà e metodi utili per l'uso IPrincipal delle attestazioni.

ClaimsPrincipal espone una raccolta di identità, ognuna delle quali è un ClaimsIdentityoggetto . Nel caso comune, questa raccolta, a cui viene eseguito l'accesso tramite la Identities proprietà, avrà solo un singolo elemento.

L'introduzione di in .NET 4.5 come entità da cui deriva la maggior parte delle ClaimsPrincipal classi principali non forza la modifica di qualsiasi elemento nel modo in cui si gestisce l'identità. Tuttavia, si aprono più possibilità e offrono più possibilità di esercitare il controllo degli accessi più fine. Ad esempio:

  • Il codice dell'applicazione può funzionare direttamente con le attestazioni contenute nell'entità corrente per eseguire attività di autenticazione, autorizzazione e personalizzazione aggiuntive.

  • È possibile affrontare le risorse con una pipeline di elaborazione delle attestazioni, che può gestire le richieste di autenticazione e i criteri di autorizzazione anche prima che l'esecuzione raggiunga il codice. Ad esempio, è possibile configurare un'applicazione o un servizio basato sul Web con un gestore di autenticazione delle attestazioni personalizzato, un'istanza ClaimsAuthenticationManager di una classe che deriva dalla classe. Quando è stata configurata, la pipeline di elaborazione delle richieste richiama il metodo nel gestore di autenticazione delle attestazioni passandolo che ClaimsPrincipal rappresenta il Authenticate contesto della richiesta in ingresso. Gestione autenticazione attestazioni può quindi eseguire l'autenticazione in base ai valori delle attestazioni in ingresso. Può anche filtrare, trasformare o aggiungere attestazioni al set di attestazioni in ingresso. Ad esempio, può essere usato per arricchire il set di attestazioni in ingresso con nuove attestazioni create da un'origine dati locale, ad esempio un profilo utente locale

  • È possibile configurare un'applicazione basata sul Web con una gestione autorizzazioni attestazioni personalizzata, un'istanza ClaimsAuthorizationManager di una classe che deriva dalla classe . In caso di configurazione, la pipeline di elaborazione delle richieste esegue il pacchetto in ingresso ClaimsPrincipal in un oggetto AuthorizationContext e richiama il CheckAccess metodo nella gestione autorizzazioni attestazioni. La gestione autorizzazioni attestazioni può quindi applicare l'autorizzazione in base alle attestazioni in ingresso.

  • I controlli di accesso al codice basati su attestazioni inline possono essere eseguiti configurando l'applicazione con un gestore di autorizzazione delle attestazioni personalizzato e usando la ClaimsPrincipalPermission classe per eseguire controlli di accesso imperativi o ClaimsPrincipalPermissionAttribute per eseguire controlli di accesso dichiarativi. I controlli di accesso al codice basati sulle attestazioni vengono eseguiti inline, all'esterno della pipeline di elaborazione e quindi sono disponibili per tutte le applicazioni, purché sia configurato un gestore di autorizzazioni attestazioni.

È possibile ottenere un'istanza ClaimsPrincipal per l'entità associata a una richiesta o l'entità in cui viene eseguito un thread, in un'applicazione relying party (RP) eseguendo il cast della Thread.CurrentPrincipal proprietà su ClaimsPrincipal. Le attestazioni associate a un ClaimsPrincipal oggetto sono disponibili tramite la relativa Claims proprietà. La Claims proprietà restituisce tutte le attestazioni contenute dalle identità associate all'entità. Nel caso in cui l'oggetto ClaimsPrincipal contiene più ClaimsIdentity istanze, è possibile usare la Identities proprietà oppure accedere all'identità primaria usando la Identity proprietà . ClaimsPrincipal fornisce diversi metodi tramite cui è possibile eseguire ricerche e supporta completamente query integrate nel linguaggio (LINQ). Le identità possono essere aggiunte all'entità usando i AddIdentities metodi o AddIdentity .

Nota

Per aggiungere identità all'oggetto ClaimsPrincipal, un chiamante deve avere attendibilità completa.

Per impostazione predefinita, WIF assegna priorità agli WindowsIdentity oggetti quando si seleziona l'identità primaria da restituire tramite la Identity proprietà. È possibile modificare questo comportamento fornendo un delegato tramite la PrimaryIdentitySelector proprietà per eseguire la selezione. La ClaimsPrincipalSelector proprietà fornisce funzionalità simili per la Current proprietà.

Nel modello basato sull'attestazione, se un'entità è in un ruolo specificato è determinata dalle attestazioni presentate dalle identità sottostanti. Il IsInRole metodo esamina essenzialmente ogni identità associata all'entità per determinare se possiede un'attestazione con il valore di ruolo specificato. Tipo dell'attestazione (rappresentata dalla Claim.Type relativa proprietà) utilizzata per determinare quali attestazioni devono essere esaminate durante i controlli dei ruoli vengono specificate in un'identità tramite la relativa ClaimsIdentity.RoleClaimType proprietà. Pertanto, le attestazioni esaminate durante i controlli dei ruoli possono essere di un tipo diverso per identità diverse associate all'entità.

Costruttori

ClaimsPrincipal()

Inizializza una nuova istanza della classe ClaimsPrincipal.

ClaimsPrincipal(BinaryReader)

Inizializza un'istanza di ClaimsPrincipal con l'oggetto BinaryReader specificato.

ClaimsPrincipal(IEnumerable<ClaimsIdentity>)

Inizializza una nuova istanza della classe ClaimsPrincipal usando le identità delle attestazioni specificate.

ClaimsPrincipal(IIdentity)

Inizializza una nuova istanza della classe ClaimsPrincipal dall'identità specificata.

ClaimsPrincipal(IPrincipal)

Inizializza una nuova istanza della classe ClaimsPrincipal dall'entità specificata.

ClaimsPrincipal(SerializationInfo, StreamingContext)
Obsoleti.

Inizializza una nuova istanza della classe ClaimsPrincipal da un flusso serializzato creato usando ISerializable.

Proprietà

Claims

Ottiene una raccolta che contiene tutte le attestazioni da tutte le identità di attestazioni associate all'entità delle attestazioni.

ClaimsPrincipalSelector

Ottiene o imposta il delegato usato per selezionare l'entità delle attestazioni restituita dalla proprietà Current.

Current

Ottiene l'entità delle attestazioni corrente.

CustomSerializationData

Contiene i dati aggiuntivi forniti da un tipo derivato. Generalmente impostato durante la chiamata a WriteTo(BinaryWriter, Byte[]).

Identities

Ottiene una raccolta che contiene tutte le identità delle attestazioni associate a questa entità attestazioni.

Identity

Ottiene l'identità delle attestazioni primaria associata a questa entità delle attestazioni.

PrimaryIdentitySelector

Ottiene o imposta il delegato usato per selezionare l'identità delle attestazioni restituita dalla proprietà Identity.

Metodi

AddIdentities(IEnumerable<ClaimsIdentity>)

Aggiunge le identità delle attestazioni specificate a questa entità delle attestazioni.

AddIdentity(ClaimsIdentity)

Aggiunge le identità delle attestazioni specificate a questa entità delle attestazioni.

Clone()

Restituisce una copia dell'istanza corrente.

CreateClaimsIdentity(BinaryReader)

Crea una nuova identità delle attestazioni.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
FindAll(Predicate<Claim>)

Recupera tutte le attestazioni che corrispondono al predicato specificato.

FindAll(String)

Recupera tutte le attestazioni che hanno il tipo di attestazione specificato.

FindFirst(Predicate<Claim>)

Recupera la prima attestazione che corrisponde al predicato specificato.

FindFirst(String)

Recupera la prima attestazione con il tipo di attestazione specificato.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetObjectData(SerializationInfo, StreamingContext)

Popola l'oggetto SerializationInfo con i dati necessari per serializzare l'oggetto ClaimsPrincipal corrente.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
HasClaim(Predicate<Claim>)

Determina se una qualsiasi delle identità di attestazione associate all'entità delle attestazioni contiene un'attestazione a cui corrisponde il predicato specificato.

HasClaim(String, String)

Determina se una qualsiasi delle identità di attestazione associate all'entità delle attestazioni contiene un'attestazione con il tipo e il valore specificati.

IsInRole(String)

Restituisce un valore che indica se l'entità (utente) rappresentata dall'entità delle attestazioni si trova nel ruolo specificato.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
WriteTo(BinaryWriter)

Esegue la serializzazione usando BinaryWriter.

WriteTo(BinaryWriter, Byte[])

Esegue la serializzazione usando BinaryWriter.

Si applica a

Vedi anche