ClaimsPrincipal Klas

Definitie

Een IPrincipal implementatie die ondersteuning biedt voor meerdere identiteiten op basis van claims.

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
Overname
ClaimsPrincipal
Afgeleid
Kenmerken
Implementeringen

Voorbeelden

In het volgende voorbeeld worden de claims geëxtraheerd die door een gebruiker in een HTTP-aanvraag worden gepresenteerd en naar het HTTP-antwoord geschreven. De huidige gebruiker wordt gelezen uit de HttpContext als een ClaimsPrincipal. De claims worden vervolgens gelezen en vervolgens naar het antwoord geschreven.

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

Opmerkingen

Vanaf .NET Framework 4.5 zijn Windows Identity Foundation (WIF) en op claims gebaseerde identiteit volledig geïntegreerd in .NET Framework. Dit betekent dat veel klassen die een principal in het .NET Framework vertegenwoordigen, nu zijn afgeleid van ClaimsPrincipal in plaats van simpelweg de interface IPrincipal te implementeren. Naast het implementeren van de IPrincipal interface, ClaimsPrincipal worden eigenschappen en methoden beschikbaar die nuttig zijn voor het werken met claims.

ClaimsPrincipal toont een verzameling identiteiten, die elk een ClaimsIdentity. In het algemene geval heeft deze verzameling, die toegankelijk is via de Identities eigenschap, slechts één element.

De introductie van ClaimsPrincipal in .NET 4.5 als de principal waaruit de meeste principal-klassen zijn afgeleid, dwingt u niet om iets te wijzigen op de manier waarop u met identiteit omgaat. Het opent echter meer mogelijkheden en biedt meer kansen om nauwkeuriger toegangsbeheer uit te oefenen. Voorbeeld:

  • De toepassingscode zelf kan rechtstreeks met de claims in de huidige principal werken om extra verificatie-, autorisatie- en personalisatietaken uit te voeren.

  • U kunt uw resources voorzien van een pijplijn voor claimverwerking, die kan omgaan met verificatieaanvragen en autorisatiebeleid, zelfs voordat de uitvoering uw code bereikt. U kunt bijvoorbeeld een webtoepassing of -service configureren met een aangepast claimverificatiebeheer, een exemplaar van een klasse die is afgeleid van de ClaimsAuthenticationManager klasse. Wanneer dit zo is geconfigureerd, roept de aanvraagverwerkingspijplijn de Authenticate methode aan op uw claimverificatiebeheerder die deze ClaimsPrincipal doorgeeft aan de context van de binnenkomende aanvraag. Uw claimverificatiemanager kan vervolgens verificatie uitvoeren op basis van de waarden van de binnenkomende claims. Het kan ook claims filteren, transformeren of toevoegen aan de binnenkomende claimset. Het kan bijvoorbeeld worden gebruikt om de binnenkomende claimset te verrijken met nieuwe claims die zijn gemaakt op basis van een lokale gegevensbron, zoals een lokaal gebruikersprofiel

  • U kunt een webtoepassing configureren met een aangepaste claimautorisatiebeheerder, een exemplaar van een klasse die is afgeleid van de ClaimsAuthorizationManager klasse. Wanneer dit zo is geconfigureerd, verpakt de aanvraagverwerkingspijplijn de binnenkomende ClaimsPrincipal in een AuthorizationContext en roept de CheckAccess methode aan op uw claimautorisatiebeheerder. Uw claimautorisatiemanager kan vervolgens autorisatie afdwingen op basis van de binnenkomende claims.

  • Inline op claims gebaseerde codetoegangscontroles kunnen worden uitgevoerd door uw toepassing te configureren met een aangepast claimautorisatiebeheer en de ClaimsPrincipalPermission klasse te gebruiken voor het uitvoeren van imperatieve toegangscontroles of het ClaimsPrincipalPermissionAttribute uitvoeren van declaratieve toegangscontroles. Op claims gebaseerde codetoegangscontroles worden inline uitgevoerd, buiten de verwerkingspijplijn, en zijn dus beschikbaar voor alle toepassingen zolang een claimautorisatiebeheer is geconfigureerd.

U kunt een ClaimsPrincipal exemplaar verkrijgen voor de principal die is gekoppeld aan een aanvraag of de principal waaronder een thread wordt uitgevoerd, in een relying party-toepassing (RP) door de Thread.CurrentPrincipal eigenschap naar te ClaimsPrincipalcasten. De claims die aan een ClaimsPrincipal object zijn gekoppeld, zijn beschikbaar via de Claims eigenschap. De Claims eigenschap retourneert alle claims die zijn opgenomen in de identiteiten die zijn gekoppeld aan de principal. In het ongebruikelijke geval waarin het ClaimsPrincipal meerdere ClaimsIdentity exemplaren bevat, kunt u de Identities eigenschap gebruiken of hebt u toegang tot de primaire identiteit met behulp van de Identity eigenschap. ClaimsPrincipal biedt verschillende methoden waarmee deze claims kunnen worden doorzocht en die volledig ondersteuning bieden voor Language Integrated Query (LINQ). Identiteiten kunnen aan de principal worden toegevoegd met behulp van de AddIdentities of AddIdentity methoden.

Note

Als u identiteiten wilt toevoegen aan de ClaimsPrincipalfunctie, moet een beller volledig vertrouwen hebben.

WIF geeft standaard prioriteit aan WindowsIdentity objecten wanneer u de primaire identiteit selecteert die u wilt retourneren via de Identity eigenschap. U kunt dit gedrag wijzigen door een gemachtigde via de PrimaryIdentitySelector eigenschap op te geven om de selectie uit te voeren. De ClaimsPrincipalSelector eigenschap biedt vergelijkbare functionaliteit voor de Current eigenschap.

In het claimmodel wordt bepaald of een principal zich in een opgegeven rol bevindt door de claims die worden gepresenteerd door de onderliggende identiteiten. De IsInRole methode onderzoekt in wezen elke identiteit die is gekoppeld aan de principal om te bepalen of deze een claim met de opgegeven rolwaarde bezit. Het type claim (vertegenwoordigd door de Claim.Type eigenschap) dat wordt gebruikt om te bepalen welke claims moeten worden onderzocht tijdens rolcontroles, wordt opgegeven op een identiteit via de ClaimsIdentity.RoleClaimType eigenschap ervan. De claims die tijdens de rolcontroles worden onderzocht, kunnen dus van een ander type zijn voor verschillende identiteiten die aan de principal zijn gekoppeld.

Constructors

Name Description
ClaimsPrincipal()

Initialiseert een nieuw exemplaar van de ClaimsPrincipal klasse.

ClaimsPrincipal(BinaryReader)

Initialiseert een exemplaar van ClaimsPrincipal met de opgegeven BinaryReader.

ClaimsPrincipal(IEnumerable<ClaimsIdentity>)

Initialiseert een nieuw exemplaar van de ClaimsPrincipal klasse met behulp van de opgegeven claimidentiteiten.

ClaimsPrincipal(IIdentity)

Initialiseert een nieuw exemplaar van de ClaimsPrincipal klasse van de opgegeven identiteit.

ClaimsPrincipal(IPrincipal)

Initialiseert een nieuw exemplaar van de ClaimsPrincipal klasse van de opgegeven principal.

ClaimsPrincipal(SerializationInfo, StreamingContext)
Verouderd.

Initialiseert een nieuw exemplaar van de ClaimsPrincipal klasse op basis van een geserialiseerde stroom die is gemaakt met behulp van ISerializable.

Eigenschappen

Name Description
Claims

Hiermee haalt u een verzameling op die alle claims bevat van alle claimidentiteiten die aan deze claimprincipaal zijn gekoppeld.

ClaimsPrincipalSelector

Hiermee haalt u de gemachtigde op die wordt gebruikt om de claimprincipaal te selecteren die door de Current eigenschap wordt geretourneerd.

Current

Hiermee haalt u de huidige claimprincipaal op.

CustomSerializationData

Bevat eventuele aanvullende gegevens die worden geleverd door een afgeleid type. Meestal ingesteld bij het aanroepen WriteTo(BinaryWriter, Byte[]).

Identities

Hiermee haalt u een verzameling op die alle claimsidentiteiten bevat die zijn gekoppeld aan deze claimprincipaal.

Identity

Hiermee haalt u de primaire claimidentiteit op die is gekoppeld aan deze claimprincipaal.

PrimaryIdentitySelector

Hiermee haalt u de gemachtigde op die wordt gebruikt om de claimidentiteit te selecteren die door de Identity eigenschap wordt geretourneerd.

Methoden

Name Description
AddIdentities(IEnumerable<ClaimsIdentity>)

Voegt de opgegeven claimidentiteiten toe aan deze claimprincipaal.

AddIdentity(ClaimsIdentity)

Hiermee voegt u de opgegeven claimidentiteit toe aan deze claimprincipaal.

Clone()

Retourneert een kopie van dit exemplaar.

CreateClaimsIdentity(BinaryReader)

Hiermee maakt u een nieuwe claimidentiteit.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
FindAll(Predicate<Claim>)

Hiermee worden alle claims opgehaald die overeenkomen met het opgegeven predicaat.

FindAll(String)

Hiermee worden alle of de claims met het opgegeven claimtype opgehaald.

FindFirst(Predicate<Claim>)

Haalt de eerste claim op die overeenkomt met het opgegeven predicaat.

FindFirst(String)

Haalt de eerste claim op met het opgegeven claimtype.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetObjectData(SerializationInfo, StreamingContext)

Hiermee worden de SerializationInfo gegevens gevuld die nodig zijn om het huidige ClaimsPrincipal object te serialiseren.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
HasClaim(Predicate<Claim>)

Bepaalt of een van de claims-id's die zijn gekoppeld aan deze claimprincipaal een claim bevat die overeenkomt met het opgegeven predicaat.

HasClaim(String, String)

Bepaalt of een van de claims-id's die aan deze claimprincipaal zijn gekoppeld, een claim bevat met het opgegeven claimtype en de opgegeven waarde.

IsInRole(String)

Retourneert een waarde die aangeeft of de entiteit (gebruiker) die wordt vertegenwoordigd door deze claimprincipaal de opgegeven rol heeft.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)
WriteTo(BinaryWriter, Byte[])

Serialiseert met behulp van een BinaryWriter.

WriteTo(BinaryWriter)

Serialiseert met behulp van een BinaryWriter.

Van toepassing op

Zie ook