ClaimsPrincipal Třída

Definice

IPrincipalImplementace, která podporuje více identit založených na deklaracích identity.An IPrincipal implementation that supports multiple claims-based identities.

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
Dědičnost
ClaimsPrincipal
Odvozené
Atributy
Implementuje

Příklady

Následující příklad extrahuje deklarace identity prezentované uživatelem v požadavku HTTP a zapisuje je do odpovědi HTTP.The following example extracts the claims presented by a user in an HTTP request and writes them to the HTTP response. Aktuální uživatel je čten z HttpContext as a ClaimsPrincipal .The current user is read from the HttpContext as a ClaimsPrincipal. Deklarace se pak z něj čtou a pak se zapisují do odpovědi.The claims are then read from it and then are written to the response.

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

Poznámky

Počínaje .NET Framework 4,5 se identita Windows Identity Foundation (WIF) a identita založená na deklaracích plně integruje do .NET Framework.Beginning with .NET Framework 4.5, Windows Identity Foundation (WIF) and claims-based identity have been fully integrated into the .NET Framework. To znamená, že mnoho tříd, které reprezentují objekt zabezpečení ve .NET Framework nyní jsou odvozeny z ClaimsPrincipal spíše než pouhy implementující IPrincipal rozhraní.This means that many classes that represent a principal in the .NET Framework now derive from ClaimsPrincipal rather than simply implementing the IPrincipal interface. Kromě implementace IPrincipal rozhraní ClaimsPrincipal zpřístupňuje vlastnosti a metody, které jsou užitečné pro práci s deklaracemi.In addition to implementing the IPrincipal interface, ClaimsPrincipal exposes properties and methods that are useful for working with claims.

ClaimsPrincipal zpřístupňuje kolekci identit, z nichž každý je ClaimsIdentity .ClaimsPrincipal exposes a collection of identities, each of which is a ClaimsIdentity. V běžném případě tato kolekce, která je k dispozici prostřednictvím Identities vlastnosti, bude mít pouze jeden prvek.In the common case, this collection, which is accessed through the Identities property, will only have a single element.

Zavedení ClaimsPrincipal v rozhraní .net 4,5 jako objekt zabezpečení, ze kterého je odvozena většina hlavních tříd, nezpůsobí změnu jakéhokoli způsobu, jakým se chystáte pracovat s identitou.The introduction of ClaimsPrincipal in .NET 4.5 as the principal from which most principal classes derive does not force you to change anything in the way in which you deal with identity. Je však možné otevřít více možností a nabídnout větší šanci na cvičení jemnějšího řízení přístupu.It does, however open up more possibilities and offer more chances to exercise finer access control. Příklad:For example:

  • Samotný kód aplikace může pracovat přímo s deklaracemi obsaženými v aktuálním objektu zabezpečení a řídit tak dodatečné ověřování, autorizaci a individuální úkoly.The application code itself can work directly with the claims contained in the current principal to drive extra authentication, authorization, and personalization tasks.

  • Prostředky můžete zasílat pomocí kanálu zpracování deklarací identity, který může pracovat s požadavky na ověření a zásadami autorizace, a to i před tím, než se spuštění dorazí na váš kód.You can front your resources with a claims processing pipeline, which can deal with authentication requests and authorization policy even before execution reaches your code. Můžete například nakonfigurovat webovou aplikaci nebo službu pomocí vlastního Správce ověřování deklarací identity, instance třídy, která je odvozena od ClaimsAuthenticationManager třídy.For example, you can configure a web-based application or service with a custom claims authentication manager, an instance of a class that derives from the ClaimsAuthenticationManager class. Pokud tak nakonfigurujete, kanál zpracování požadavků vyvolá Authenticate metodu v rámci Správce ověřování deklarací identity ClaimsPrincipal , která ji projde, a představuje kontext příchozího požadavku.When so configured, the request processing pipeline invokes the Authenticate method on your claims authentication manager passing it a ClaimsPrincipal that represents the context of the incoming request. Správce ověřování deklarací identity pak může provádět ověřování na základě hodnot příchozích deklarací identity.Your claims authentication manager can then perform authentication based on the values of the incoming claims. Může také filtrovat, transformovat nebo přidávat deklarace do příchozí sady deklarací.It can also filter, transform, or add claims to the incoming claim set. Můžete ho například použít k obohacení příchozí sady deklarací s novými deklaracemi vytvořenými z místního zdroje dat, jako je místní profil uživatele.For example, it could be used to enrich the incoming claim set with new claims created from a local data source such as a local user profile

  • Webovou aplikaci můžete nakonfigurovat pomocí vlastního Správce autorizací deklarací identity, instance třídy, která je odvozena od ClaimsAuthorizationManager třídy.You can configure a web-based application with a custom claims authorization manager, an instance of a class that derives from the ClaimsAuthorizationManager class. Když tak nakonfigurujete, požadavek zpracování kanálu zabalí příchozí ClaimsPrincipal objekt do AuthorizationContext a vyvolá CheckAccess metodu v rámci Správce autorizací deklarací identity.When so configured, the request processing pipeline packages the incoming ClaimsPrincipal in an AuthorizationContext and invokes the CheckAccess method on your claims authorization manager. Správce autorizací deklarací identity pak může vymáhat autorizaci na základě příchozích deklarací identity.Your claims authorization manager can then enforce authorization based on the incoming claims.

  • Vložené kontroly přístupu kódu založené na deklaracích identity je možné provést konfigurací aplikace pomocí vlastního Správce autorizací deklarací identity a použitím ClaimsPrincipalPermission třídy k provádění imperativních kontrol přístupu nebo ClaimsPrincipalPermissionAttribute k provádění kontrol deklarativního přístupu.Inline claims-based code access checks can be performed by configuring your application with a custom claims authorization manager and using either the ClaimsPrincipalPermission class to perform imperative access checks or the ClaimsPrincipalPermissionAttribute to perform declarative access checks. Kontroly přístupu kódu založené na deklaracích identity se provádějí vložené, mimo kanál zpracování, a takže jsou dostupné pro všechny aplikace, pokud je nakonfigurovaný Správce autorizací deklarací identity.Claims-based code access checks are performed inline, outside of the processing pipeline, and so are available to all applications as long as a claims authorization manager is configured.

Můžete získat ClaimsPrincipal instanci objektu zabezpečení přidruženého k žádosti v aplikaci RP (nebo objekt zabezpečení, pod nímž je vlákno prováděno), přetypováním Thread.CurrentPrincipal vlastnosti na ClaimsPrincipal .You can obtain a ClaimsPrincipal instance for the principal associated with a request in an RP application (or the principal under which a thread is executing) by casting the Thread.CurrentPrincipal property to ClaimsPrincipal. Deklarace přidružená k ClaimsPrincipal objektu jsou k dispozici prostřednictvím jeho Claims Vlastnosti.The claims associated with an ClaimsPrincipal object are available through its Claims property. ClaimsVlastnost vrátí všechny deklarace obsažené v rámci identit přidružených k objektu zabezpečení.The Claims property returns all of the claims contained by the identities associated with the principal. V neběžném případě, ve kterém ClaimsPrincipal obsahuje více ClaimsIdentity instancí, můžete použít Identities vlastnost nebo můžete k primární identitě přistupovat pomocí Identity Vlastnosti.In the uncommon case in which the ClaimsPrincipal contains multiple ClaimsIdentity instances, you can use the Identities property or you can access the primary identity by using the Identity property. ClaimsPrincipal poskytuje několik metod, pomocí kterých mohou být tyto deklarace vyhledávány a plně podporují LINQ (Language Integrated Query).ClaimsPrincipal provides several methods through which these claims may be searched and fully supports Language Integrated Query (LINQ). Identity lze do objektu zabezpečení přidat pomocí AddIdentities AddIdentity metod nebo.Identities can be added to the principal by using the AddIdentities or AddIdentity methods.

Poznámka

Chcete-li přidat identity do ClaimsPrincipal , volající musí mít úplný vztah důvěryhodnosti.To add identities to the ClaimsPrincipal, a caller must have full trust.

Ve výchozím nastavení WIF WindowsIdentity při výběru primární identity, která se má vrátit přes vlastnost, prioritu objektů Identity .By default, WIF prioritizes WindowsIdentity objects when selecting the primary identity to return through the Identity property. Toto chování můžete upravit tak, že poskytnete delegáta prostřednictvím PrimaryIdentitySelector Vlastnosti k provedení výběru.You can modify this behavior by supplying a delegate through the PrimaryIdentitySelector property to perform the selection. ClaimsPrincipalSelectorVlastnost poskytuje podobnou funkci pro Current vlastnost.The ClaimsPrincipalSelector property provides similar functionality for the Current property.

V modelu založeném na deklaracích, ať už je objekt zabezpečení v zadané roli, je určen deklaracemi, které prezentují jeho základní identity.In the claim-based model, whether a principal is in a specified role is determined by the claims presented by its underlying identities. IsInRoleMetoda v podstatě prověřuje každou identitu přidruženou k objektu zabezpečení a určí, zda má deklaraci identity se zadanou hodnotou role.The IsInRole method essentially examines each identity associated with the principal to determine whether it possesses a claim with the specified role value. Typ deklarace identity (reprezentovaný jeho Claim.Type vlastností), pomocí kterého se určí, které deklarace identity se mají prozkoumat během kontrol rolí, a to prostřednictvím její ClaimsIdentity.RoleClaimType Vlastnosti.The type of the claim (represented by its Claim.Type property) used to determine which claims should be examined during role checks is specified on an identity through its ClaimsIdentity.RoleClaimType property. Deklarace identity, které byly přezkoumány během kontrol rolí, mohou mít jiný typ pro různé identity přidružené k objektu zabezpečení.Thus, the claims examined during role checks can be of a different type for different identities associated with the principal.

Konstruktory

ClaimsPrincipal()

Inicializuje novou instanci ClaimsPrincipal třídy.Initializes a new instance of the ClaimsPrincipal class.

ClaimsPrincipal(BinaryReader)

Inicializuje instanci ClaimsPrincipal se zadaným parametrem BinaryReader .Initializes an instance of ClaimsPrincipal with the specified BinaryReader.

ClaimsPrincipal(IEnumerable<ClaimsIdentity>)

Inicializuje novou instanci ClaimsPrincipal třídy pomocí zadaných identit deklarací identity.Initializes a new instance of the ClaimsPrincipal class using the specified claims identities.

ClaimsPrincipal(IIdentity)

Inicializuje novou instanci ClaimsPrincipal třídy ze zadané identity.Initializes a new instance of the ClaimsPrincipal class from the specified identity.

ClaimsPrincipal(IPrincipal)

Inicializuje novou instanci ClaimsPrincipal třídy ze zadaného objektu zabezpečení.Initializes a new instance of the ClaimsPrincipal class from the specified principal.

ClaimsPrincipal(SerializationInfo, StreamingContext)

Inicializuje novou instanci ClaimsPrincipal třídy ze serializovaného datového proudu vytvořeného pomocí ISerializable .Initializes a new instance of the ClaimsPrincipal class from a serialized stream created by using ISerializable.

Vlastnosti

Claims

Získá kolekci, která obsahuje všechny deklarace identity ze všech identit deklarací identity přidružených k tomuto objektu zabezpečení deklarací identity.Gets a collection that contains all of the claims from all of the claims identities associated with this claims principal.

ClaimsPrincipalSelector

Získá nebo nastaví delegáta použitý k výběru objektu zabezpečení, který je vrácen Current vlastností.Gets or sets the delegate used to select the claims principal returned by the Current property.

Current

Získá aktuální objekt zabezpečení deklarací identity.Gets the current claims principal.

CustomSerializationData

Obsahuje jakákoli další data poskytnutá odvozeným typem.Contains any additional data provided by a derived type. Obvykle nastaveno při volání WriteTo(BinaryWriter, Byte[]) .Typically set when calling WriteTo(BinaryWriter, Byte[]).

Identities

Získá kolekci, která obsahuje všechny identity deklarací identity přidružené k tomuto objektu zabezpečení deklarací identity.Gets a collection that contains all of the claims identities associated with this claims principal.

Identity

Získá primární identitu deklarací identity přidruženou k tomuto objektu zabezpečení deklarací identity.Gets the primary claims identity associated with this claims principal.

PrimaryIdentitySelector

Získá nebo nastaví delegáta, který slouží k výběru identity deklarace identity vrácené Identity vlastností.Gets or sets the delegate used to select the claims identity returned by the Identity property.

Metody

AddIdentities(IEnumerable<ClaimsIdentity>)

Přidá k tomuto objektu zabezpečení deklarací zadané identity deklarací identity.Adds the specified claims identities to this claims principal.

AddIdentity(ClaimsIdentity)

Přidá zadanou identitu deklarací identity k tomuto objektu zabezpečení deklarací identity.Adds the specified claims identity to this claims principal.

Clone()

Vrátí kopii této instance.Returns a copy of this instance.

CreateClaimsIdentity(BinaryReader)

Vytvoří novou identitu deklarací identity.Creates a new claims identity.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
FindAll(Predicate<Claim>)

Načte všechny deklarace, které odpovídají zadanému predikátu.Retrieves all of the claims that are matched by the specified predicate.

FindAll(String)

Načte všechny nebo deklarace identity, které mají zadaný typ deklarace identity.Retrieves all or the claims that have the specified claim type.

FindFirst(Predicate<Claim>)

Načte první deklaraci identity, která odpovídá zadanému predikátu.Retrieves the first claim that is matched by the specified predicate.

FindFirst(String)

Načte první deklaraci identity se zadaným typem deklarace identity.Retrieves the first claim with the specified claim type.

GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetObjectData(SerializationInfo, StreamingContext)

Naplní SerializationInfo data potřebná k serializaci aktuálního ClaimsPrincipal objektu.Populates the SerializationInfo with data needed to serialize the current ClaimsPrincipal object.

GetType()

Získá Type aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
HasClaim(Predicate<Claim>)

Určuje, zda kterákoli z identit deklarací identity přidružených k tomuto objektu zabezpečení deklarací obsahuje deklaraci identity, která odpovídá zadanému predikátu.Determines whether any of the claims identities associated with this claims principal contains a claim that is matched by the specified predicate.

HasClaim(String, String)

Určuje, jestli některé identity deklarací identity přidružené k tomuto objektu zabezpečení deklarací identity obsahují deklaraci identity se zadaným typem a hodnotou deklarace identity.Determines whether any of the claims identities associated with this claims principal contains a claim with the specified claim type and value.

IsInRole(String)

Vrátí hodnotu, která označuje, zda je entita (uživatel) reprezentovaná tímto objektem deklarací identity v zadané roli.Returns a value that indicates whether the entity (user) represented by this claims principal is in the specified role.

MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)
WriteTo(BinaryWriter)

Serializace pomocí BinaryWriter .Serializes using a BinaryWriter.

WriteTo(BinaryWriter, Byte[])

Serializace pomocí BinaryWriter .Serializes using a BinaryWriter.

Platí pro

Viz také