ClaimsPrincipal Třída

Definice

Implementace IPrincipal , která podporuje více identit založených na deklaracích identity.

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 zapíše je do odpovědi HTTP. Aktuální uživatel se čte jako HttpContext ClaimsPrincipal. Deklarace identity se pak načtou a pak se zapíšou do odpovědi.

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 plně integrují Windows Identity Foundation (WIF) a identita založená na deklaracích identit do .NET Framework. To znamená, že mnoho tříd, které představují instanční objekt v .NET Framework nyní odvozeny místo ClaimsPrincipal pouhé implementace IPrincipal rozhraní. Kromě implementace IPrincipal rozhraní zveřejňuje vlastnosti a metody, ClaimsPrincipal které jsou užitečné pro práci s deklaracemi identity.

ClaimsPrincipal zveřejňuje kolekci identit, z nichž každá je ClaimsIdentity. V běžném případě tato kolekce, která je přístupná prostřednictvím Identities vlastnosti, bude mít pouze jeden prvek.

Zavedení ClaimsPrincipal v .NET 4.5 jako objektu zabezpečení, ze kterého většina hlavních tříd odvozuje, vás nevynutí změnit nic způsobem, jakým se zabýváte identitou. Otevře se ale více možností a nabízí více možností, jak využít jemněji řízení přístupu. Například:

  • Samotný kód aplikace může pracovat přímo s deklaracemi identity obsaženými v aktuálním objektu zabezpečení a řídit další úlohy ověřování, autorizace a přizpůsobení.

  • Prostředky můžete předložit kanálem pro zpracování deklarací identity, který může řešit žádosti o ověřování a zásady autorizace i před provedením vašeho kódu. Můžete například nakonfigurovat webovou aplikaci nebo službu pomocí vlastního správce ověřování deklarací identity, instanci třídy, která je odvozena z ClaimsAuthenticationManager třídy. Pokud je tak nakonfigurovaný, kanál zpracování požadavků vyvolá metodu Authenticate ve správci ověřování deklarací identity, která ClaimsPrincipal představuje kontext příchozího požadavku. 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. Může také filtrovat, transformovat nebo přidávat deklarace identity do příchozí sady deklarací identity. Může se například použít k obohacení příchozí sady deklarací identity novými deklaracemi vytvořenými z místního zdroje dat, jako je místní profil uživatele.

  • Webovou aplikaci můžete nakonfigurovat pomocí vlastního správce autorizace deklarací identity, instance třídy, která je odvozena od ClaimsAuthorizationManager třídy. Pokud je tato konfigurace nakonfigurovaná, kanál pro zpracování požadavků zabalí příchozí ClaimsPrincipal do AuthorizationContext kanálu a vyvolá metodu CheckAccess pro správce autorizace deklarací identity. Správce autorizace deklarací identity pak může vynutit autorizaci na základě příchozích deklarací identity.

  • Vložené kontroly přístupu kódu založené na deklarací identity je možné provádět konfigurací aplikace pomocí vlastního správce autorizace deklarací identity a pomocí ClaimsPrincipalPermission třídy provádět imperativní kontroly přístupu nebo ClaimsPrincipalPermissionAttribute provádět deklarativní kontroly přístupu. Kontroly přístupu kódu na základě deklarací identity se provádějí přímo mimo kanál zpracování a jsou tak k dispozici pro všechny aplikace, pokud je nakonfigurovaný správce autorizace deklarací identity.

Instanci objektu zabezpečení přidruženého k požadavku nebo instančnímu objektu, pod kterým se provádí vlákno, můžete získat ClaimsPrincipal v aplikaci předávající strany (RP) přetypováním Thread.CurrentPrincipal vlastnosti na ClaimsPrincipal. Deklarace identity přidružené k objektu ClaimsPrincipal jsou k dispozici prostřednictvím jeho Claims vlastnosti. Vlastnost Claims vrátí všechny deklarace identity obsažené identitami přidruženými k objektu zabezpečení. V neobvyklém případě, ve kterém ClaimsPrincipal obsahuje více ClaimsIdentity instancí, můžete použít Identities vlastnost nebo můžete získat přístup k primární identitě pomocí Identity vlastnosti. ClaimsPrincipal poskytuje několik metod, prostřednictvím kterých mohou být tyto deklarace identity prohledány a plně podporuje jazyk integrovaný dotaz (LINQ). Identity lze do objektu zabezpečení přidat pomocí AddIdentities metod nebo AddIdentity metod.

Poznámka

Pokud chcete do volajícího ClaimsPrincipalpřidat identity, musí mít úplný vztah důvěryhodnosti.

WiF ve výchozím nastavení upřednostňuje WindowsIdentity objekty při výběru primární identity, která se má vrátit prostřednictvím Identity vlastnosti. Toto chování můžete upravit zadáním delegáta PrimaryIdentitySelector prostřednictvím vlastnosti k provedení výběru. Vlastnost ClaimsPrincipalSelector poskytuje podobné funkce vlastnosti Current .

V modelu založeném na deklarací identity určuje, zda je objekt zabezpečení v zadané roli určen deklaracemi, které jsou prezentovány jeho podkladovými identitami. Metoda IsInRole v podstatě prozkoumá každou identitu přidruženou k objektu zabezpečení a určí, zda má deklarace identity se zadanou hodnotou role. Typ deklarace identity (reprezentované jeho Claim.Type vlastností) sloužící k určení, které deklarace identity by se měly zkoumat při kontrolách rolí, je určena pro identitu prostřednictvím jeho ClaimsIdentity.RoleClaimType vlastnosti. Deklarace identity, které byly zkoumány během kontrol rolí, tedy mohou být jiného typu pro různé identity přidružené k objektu zabezpečení.

Konstruktory

ClaimsPrincipal()

Inicializuje novou instanci ClaimsPrincipal třídy.

ClaimsPrincipal(BinaryReader)

Inicializuje instanci ClaimsPrincipal se zadaným BinaryReader.

ClaimsPrincipal(IEnumerable<ClaimsIdentity>)

Inicializuje novou instanci ClaimsPrincipal třídy pomocí zadaných identit deklarací identity.

ClaimsPrincipal(IIdentity)

Inicializuje novou instanci ClaimsPrincipal třídy ze zadané identity.

ClaimsPrincipal(IPrincipal)

Inicializuje novou instanci ClaimsPrincipal třídy ze zadaného objektu zabezpečení.

ClaimsPrincipal(SerializationInfo, StreamingContext)

Inicializuje novou instanci ClaimsPrincipal třídy ze serializovaného streamu vytvořeného pomocí ISerializable.

Vlastnosti

Claims

Získá kolekci, která obsahuje všechny deklarace identity ze všech identit deklarací přidružených k tomuto objektu deklarací identity.

ClaimsPrincipalSelector

Získá nebo nastaví delegát použitý k výběru objektu deklarací identity vráceného Current vlastností.

Current

Získá aktuální objekt zabezpečení deklarací identity.

CustomSerializationData

Obsahuje všechna další data poskytnutá odvozeným typem. Obvykle se nastavuje při volání WriteTo(BinaryWriter, Byte[]).

Identities

Získá kolekci, která obsahuje všechny identity deklarací identity přidružené k tomuto objektu deklarací identity.

Identity

Získá primární identitu deklarací identity přidruženou k tomuto objektu deklarací identity.

PrimaryIdentitySelector

Získá nebo nastaví delegát použitý k výběru identity deklarací identity vrácené Identity vlastností.

Metody

AddIdentities(IEnumerable<ClaimsIdentity>)

Přidá zadané identity deklarací identity do tohoto objektu deklarací identity.

AddIdentity(ClaimsIdentity)

Přidá zadanou identitu deklarací identity do tohoto objektu deklarací identity.

Clone()

Vrátí kopii této instance.

CreateClaimsIdentity(BinaryReader)

Vytvoří novou identitu deklarací identity.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Načte všechny deklarace identity, které odpovídají zadanému predikátu.

FindAll(String)

Načte všechny deklarace identity nebo deklarace identity, které mají zadaný typ deklarace identity.

FindFirst(Predicate<Claim>)

Načte první deklaraci identity, která se shoduje se zadaným predikátem.

FindFirst(String)

Načte první deklaraci identity se zadaným typem deklarace identity.

GetHashCode()

Slouží jako výchozí funkce hash.

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

Naplní SerializationInfo data potřebná k serializaci aktuálního ClaimsPrincipal objektu.

GetType()

Type Získá aktuální instanci.

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

Určuje, zda některá z identit deklarací identity přidružených k tomuto objektu deklarací identity obsahuje deklaraci identity, která odpovídá zadanému predikátu.

HasClaim(String, String)

Určuje, zda některá identita deklarací identity přidružená k tomuto objektu deklarací identity obsahuje deklaraci identity se zadaným typem a hodnotou deklarace identity.

IsInRole(String)

Vrátí hodnotu, která označuje, jestli je entita (uživatel) reprezentovaná tímto objektem deklarací identity v zadané roli.

MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

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

Vrátí řetězec, který představuje aktuální objekt.

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

Serializuje pomocí BinaryWriter.

WriteTo(BinaryWriter, Byte[])

Serializuje pomocí BinaryWriter.

Platí pro

Viz také