ClaimsPrincipal 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.
Implementazione IPrincipal che supporta più identità basate su 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 da HttpContext come .ClaimsPrincipal Le attestazioni vengono quindi lette da essa 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 sulle attestazioni sono completamente integrati in .NET Framework. Ciò significa che molte classi che rappresentano un'entità di sicurezza in .NET Framework derivano ora da ClaimsPrincipal 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 oggetto ClaimsIdentity. Nel caso comune, questa raccolta, accessibile tramite la Identities proprietà , avrà solo un singolo elemento.
L'introduzione di ClaimsPrincipal in .NET 4.5 come principale da cui derivano la maggior parte delle classi principale non impone di modificare nulla nel modo in cui si gestisce l'identità. Tuttavia, apre più possibilità e offre più possibilità di esercitare un controllo di accesso più corretto. Per 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 far fronte alle 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 di una classe che deriva dalla ClaimsAuthenticationManager classe . In caso di configurazione, la pipeline di elaborazione delle richieste richiama il Authenticate metodo nel gestore di autenticazione delle attestazioni passandolo che ClaimsPrincipal rappresenta il contesto della richiesta in ingresso. Il gestore di autenticazione delle 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 un gestore autorizzazioni attestazioni personalizzate, un'istanza di una classe che deriva dalla ClaimsAuthorizationManager classe . In caso di configurazione, la pipeline di elaborazione delle richieste crea un pacchetto in ingresso ClaimsPrincipal in un AuthorizationContext oggetto e richiama il CheckAccess metodo nel gestore di autorizzazioni delle attestazioni. Il gestore di autorizzazioni delle attestazioni può quindi applicare l'autorizzazione in base alle attestazioni in ingresso.
I controlli di accesso al codice basati sulle attestazioni inline possono essere eseguiti configurando l'applicazione con un gestore di autorizzazioni delle attestazioni personalizzate 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 autorizzazioni attestazioni.
È possibile ottenere un'istanza ClaimsPrincipal per l'entità associata a una richiesta o l'entità in cui è in esecuzione 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 nelle identità associate all'entità. Nel caso non comune in cui 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 in queste attestazioni e supporta completamente LINQ (Language Integrated Query). Le identità possono essere aggiunte all'entità usando i AddIdentities metodi o AddIdentity .
Annotazioni
Per aggiungere identità a ClaimsPrincipal, un chiamante deve avere un trust completo.
Per impostazione predefinita, WIF assegna WindowsIdentity la priorità agli oggetti quando si seleziona l'identità primaria da restituire tramite la Identity proprietà . È possibile modificare questo comportamento specificando 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à si trova 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 relativa Claim.Type 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
| Nome | Descrizione |
|---|---|
| ClaimsPrincipal() |
Inizializza una nuova istanza della classe ClaimsPrincipal. |
| ClaimsPrincipal(BinaryReader) |
Inizializza un'istanza di ClaimsPrincipal con l'oggetto specificato BinaryReader. |
| ClaimsPrincipal(IEnumerable<ClaimsIdentity>) |
Inizializza una nuova istanza della ClaimsPrincipal classe utilizzando le identità delle attestazioni specificate. |
| ClaimsPrincipal(IIdentity) |
Inizializza una nuova istanza della ClaimsPrincipal classe dall'identità specificata. |
| ClaimsPrincipal(IPrincipal) |
Inizializza una nuova istanza della ClaimsPrincipal classe dall'entità specificata. |
| ClaimsPrincipal(SerializationInfo, StreamingContext) |
Obsoleti.
Inizializza una nuova istanza della ClaimsPrincipal classe da un flusso serializzato creato tramite ISerializable. |
Proprietà
| Nome | Descrizione |
|---|---|
| Claims |
Ottiene una raccolta che contiene tutte le attestazioni di tutte le identità delle attestazioni associate a questa entità attestazioni. |
| ClaimsPrincipalSelector |
Ottiene o imposta il delegato utilizzato per selezionare l'entità attestazioni restituita dalla Current proprietà . |
| Current |
Ottiene l'entità attestazioni corrente. |
| CustomSerializationData |
Contiene eventuali dati aggiuntivi forniti da un tipo derivato. In genere impostata quando si chiama 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à attestazioni. |
| PrimaryIdentitySelector |
Ottiene o imposta il delegato utilizzato per selezionare l'identità delle attestazioni restituita dalla Identity proprietà . |
Metodi
| Nome | Descrizione |
|---|---|
| AddIdentities(IEnumerable<ClaimsIdentity>) |
Aggiunge le identità delle attestazioni specificate a questa entità attestazioni. |
| AddIdentity(ClaimsIdentity) |
Aggiunge l'identità delle attestazioni specificata a questa entità attestazioni. |
| Clone() |
Restituisce una copia dell'istanza. |
| 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 corrispondenti al predicato specificato. |
| FindAll(String) |
Recupera tutte le attestazioni o che hanno il tipo di attestazione specificato. |
| FindFirst(Predicate<Claim>) |
Recupera la prima attestazione corrispondente 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 corrente ClaimsPrincipal . |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| HasClaim(Predicate<Claim>) |
Determina se una delle identità delle attestazioni associate a questa entità attestazioni contiene un'attestazione corrispondente al predicato specificato. |
| HasClaim(String, String) |
Determina se una delle identità delle attestazioni associate a questa entità attestazioni contiene un'attestazione con il tipo di attestazione e il valore specificati. |
| IsInRole(String) |
Restituisce un valore che indica se l'entità (utente) rappresentata da questa entità attestazioni si trova nel ruolo specificato. |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| WriteTo(BinaryWriter, Byte[]) |
Serializza utilizzando un oggetto BinaryWriter. |
| WriteTo(BinaryWriter) |
Serializza utilizzando un oggetto BinaryWriter. |