Sdílet prostřednictvím


ClaimsPrincipal Třída

Definice

Implementace IPrincipal , která podporuje více identit založených na deklarací 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 předložené uživatelem v požadavku HTTP a zapíše je do odpovědi HTTP. Aktuální uživatel se načte ze HttpContext souboru jako ClaimsPrincipal. Deklarace identity se z něj pak načtou a zapíšou se do odpovědi.

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

Poznámky

Počínaje rozhraním .NET Framework 4.5 jsou identita windows identity (WIF) a identita založená na deklarací identity plně integrována do rozhraní .NET Framework. To znamená, že mnoho tříd, které představují objekt zabezpečení v rozhraní .NET Framework, jsou nyní odvozeny z ClaimsPrincipal namísto pouhé implementace IPrincipal rozhraní. Kromě implementace IPrincipal rozhraní zpřístupňuje vlastnosti a metody, ClaimsPrincipal které jsou užitečné pro práci s deklaracemi identity.

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

Zavedení objektu ClaimsPrincipal v .NET 4.5 jako objektu zabezpečení, ze kterého je odvozena většina tříd objektů zabezpečení, vás nenutí nic měnit ve způsobu, jakým s identitou nakládáte. Otevírá ale více možností a nabízí více možností, jak provést jemnější řízení přístupu. Příklad:

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

  • K prostředkům můžete použít kanál zpracování deklarací identity, který dokáže zpracovávat žádosti o ověření a zásady autorizace ještě před tím, než spuštění dosáhne 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 . Když je to nakonfigurované, kanál zpracování požadavků vyvolá metodu Authenticate ve správci ověřování deklarací identity a předá jí ClaimsPrincipal objekt , který představuje kontext příchozího požadavku. Váš 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. Dá se například použít k obohacení příchozí sady deklarací identity o nové deklarace identity vytvořené 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 z ClaimsAuthorizationManager třídy . Po nakonfigurování kanál zpracování požadavku zabalí příchozí ClaimsPrincipal do a vyvolá metodu CheckAccess ve AuthorizationContext správci 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ích se dají provádět nakonfigurováním aplikace pomocí vlastního správce autorizace deklarací identity a použitím ClaimsPrincipalPermission třídy k provádění imperativních kontrol přístupu nebo ClaimsPrincipalPermissionAttribute pomocí třídy k provádění deklarativních kontrol přístupu. Kontroly přístupu kódu na základě deklarací identity se provádějí vloženě, mimo kanál zpracování a jsou tak dostupné všem aplikacím, pokud je nakonfigurovaný správce autorizace deklarací identity.

Instanci objektu ClaimsPrincipal zabezpečení přidruženého k požadavku nebo objektu zabezpečení, pod kterým se provádí vlákno, můžete získat 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é v identitách přidružených k objektu zabezpečení. V neobvyklém případě, kdy ClaimsPrincipal objekt obsahuje více ClaimsIdentity instancí, můžete použít Identities vlastnost nebo získat přístup k primární identitě pomocí Identity vlastnosti . ClaimsPrincipal poskytuje několik metod, pomocí kterých lze tyto deklarace identity prohledávat, a plně podporuje linq (Language Integrated Query). Identity je možné přidat do objektu AddIdentities zabezpečení pomocí metod nebo AddIdentity .

Poznámka

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

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

V modelu založeném na deklarací identitě určuje, jestli je objekt zabezpečení v zadané roli, na základě deklarací identity, které prezentuje jeho podkladové identity. Metoda IsInRole v podstatě prozkoumá každou identitu přidruženou k objektu zabezpečení a určí, jestli má deklaraci identity se zadanou hodnotou role. Typ deklarace identity (reprezentovaný její Claim.Type vlastností) použitý k určení, které deklarace identity by se měly zkoumat během kontrol rolí, se u identity specifikuje prostřednictvím její ClaimsIdentity.RoleClaimType vlastnosti. Deklarace identity, které se zkoumají při kontrolách rolí, proto můžou mít jiný typ 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 BinaryReaderparametrem .

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)
Zastaralé.

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

Vlastnosti

Claims

Získá kolekci, která obsahuje všechny deklarace identity ze všech identit deklarací identity spojené s tímto objektem deklarací identity.

ClaimsPrincipalSelector

Získá nebo nastaví delegát použitý k výběru objektu zabezpečení deklarace 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 zabezpečení deklarací identity.

PrimaryIdentitySelector

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

Metody

AddIdentities(IEnumerable<ClaimsIdentity>)

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

AddIdentity(ClaimsIdentity)

Přidá zadanou identitu deklarací identity do tohoto objektu zabezpečení 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 odpovídající zadanému predikátu.

FindAll(String)

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

FindFirst(Predicate<Claim>)

Načte první deklaraci identity odpovídající zadanému predikátu.

FindFirst(String)

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

GetHashCode()

Slouží jako výchozí hashovací funkce.

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

Naplní SerializationInfo objekt daty potřebnými k serializaci aktuálního ClaimsPrincipal objektu.

GetType()

Type Získá z aktuální instance.

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

Určuje, jestli některá z identit deklarací identity přidružená k tomuto objektu zabezpečení deklarací identity obsahuje deklaraci identity odpovídající zadanému predikátu.

HasClaim(String, String)

Určuje, jestli některá z identit deklarací identity přidružená k tomuto objektu zabezpečení 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ří mělkou kopii aktuálního Objectsouboru .

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

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

(Zděděno od Object)
WriteTo(BinaryWriter, Byte[])

Serializuje pomocí .BinaryWriter

WriteTo(BinaryWriter)

Serializuje pomocí .BinaryWriter

Platí pro

Viz také