ClaimsPrincipal Classe

Définition

Implémentation IPrincipal qui prend en charge plusieurs identités basées sur des revendications.

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
Héritage
ClaimsPrincipal
Dérivé
Attributs
Implémente

Exemples

L’exemple suivant extrait les revendications présentées par un utilisateur dans une requête HTTP et les écrit dans la réponse HTTP. L’utilisateur actuel est lu à partir du HttpContext en tant que ClaimsPrincipal. Les revendications sont ensuite lues à partir de celle-ci, puis écrites dans la réponse.

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

Remarques

À compter de .NET Framework 4.5, Windows Identity Foundation (WIF) et l’identité basée sur les revendications sont entièrement intégrés dans .NET Framework. Cela signifie que de nombreuses classes qui représentent un principal dans le .NET Framework dérivent désormais de ClaimsPrincipal plutôt que d’implémenter simplement l’interface IPrincipal . En plus d’implémenter l’interface IPrincipal , ClaimsPrincipal expose des propriétés et des méthodes utiles pour l’utilisation des revendications.

ClaimsPrincipal expose une collection d’identités, chacune d’entre elles étant un ClaimsIdentity. Dans le cas courant, cette collection, accessible via la Identities propriété , n’aura qu’un seul élément.

L’introduction de ClaimsPrincipal dans .NET 4.5 comme principal d’où dérivent la plupart des classes principales ne vous oblige pas à modifier quoi que ce soit dans la façon dont vous gérez l’identité. Il ouvre cependant davantage de possibilités et offre plus de chances d’exercer un contrôle d’accès plus fin. Exemple :

  • Le code d’application lui-même peut fonctionner directement avec les revendications contenues dans le principal actuel pour générer des tâches d’authentification, d’autorisation et de personnalisation supplémentaires.

  • Vous pouvez faire front à vos ressources avec un pipeline de traitement des revendications, qui peut traiter les demandes d’authentification et la stratégie d’autorisation avant même que l’exécution n’atteigne votre code. Par exemple, vous pouvez configurer une application ou un service web avec un gestionnaire d’authentification par revendications personnalisé, un instance d’une classe qui dérive de la ClaimsAuthenticationManager classe . Lorsqu’il est configuré, le pipeline de traitement des demandes appelle la Authenticate méthode sur votre gestionnaire d’authentification des revendications en lui transmettant un ClaimsPrincipal qui représente le contexte de la requête entrante. Votre gestionnaire d’authentification des revendications peut ensuite effectuer l’authentification en fonction des valeurs des revendications entrantes. Il peut également filtrer, transformer ou ajouter des revendications au jeu de revendications entrant. Par exemple, il peut être utilisé pour enrichir le jeu de revendications entrant avec de nouvelles revendications créées à partir d’une source de données locale, comme un profil utilisateur local

  • Vous pouvez configurer une application web avec un gestionnaire d’autorisation de revendications personnalisé, un instance d’une classe qui dérive de la ClaimsAuthorizationManager classe . Lorsqu’il est configuré ainsi, le pipeline de traitement de la demande empaquette le entrant ClaimsPrincipal dans un et appelle la CheckAccess méthode sur votre gestionnaire d’autorisation AuthorizationContext des revendications. Votre gestionnaire d’autorisation de revendications peut ensuite appliquer l’autorisation en fonction des revendications entrantes.

  • Les vérifications d’accès du code basées sur les revendications inline peuvent être effectuées en configurant votre application avec un gestionnaire d’autorisation de revendications personnalisé et en utilisant la ClaimsPrincipalPermission classe pour effectuer des vérifications d’accès impératives ou pour ClaimsPrincipalPermissionAttribute effectuer des vérifications d’accès déclaratifs. Les vérifications d’accès au code basées sur les revendications sont effectuées inline, en dehors du pipeline de traitement, et sont donc disponibles pour toutes les applications tant qu’un gestionnaire d’autorisation de revendications est configuré.

Vous pouvez obtenir une ClaimsPrincipal instance pour le principal associé à une demande, ou le principal sous lequel un thread s’exécute, dans une application de partie de confiance (RP) en castant la Thread.CurrentPrincipal propriété en ClaimsPrincipal. Les revendications associées à un ClaimsPrincipal objet sont disponibles via sa Claims propriété . La Claims propriété retourne toutes les revendications contenues par les identités associées au principal. Dans le cas rare où contient ClaimsPrincipal plusieurs ClaimsIdentity instances, vous pouvez utiliser la Identities propriété ou accéder à l’identité principale à l’aide de la Identity propriété . ClaimsPrincipal fournit plusieurs méthodes par le biais desquelles ces revendications peuvent faire l’objet d’une recherche et prend entièrement en charge LINQ (Language Integrated Query). Les identités peuvent être ajoutées au principal à l’aide des AddIdentities méthodes ou AddIdentity .

Notes

Pour ajouter des identités à , ClaimsPrincipalun appelant doit avoir une confiance totale.

Par défaut, WIF hiérarchise les WindowsIdentity objets lors de la sélection de l’identité principale à retourner via la Identity propriété . Vous pouvez modifier ce comportement en fournissant un délégué via la PrimaryIdentitySelector propriété pour effectuer la sélection. La ClaimsPrincipalSelector propriété fournit des fonctionnalités similaires pour la Current propriété .

Dans le modèle basé sur les revendications, si un principal est dans un rôle spécifié est déterminé par les revendications présentées par ses identités sous-jacentes. La IsInRole méthode examine essentiellement chaque identité associée au principal pour déterminer si elle possède une revendication avec la valeur de rôle spécifiée. Le type de la revendication (représentée par sa Claim.Type propriété) utilisé pour déterminer quelles revendications doivent être examinées lors des vérifications de rôle est spécifié sur une identité par le biais de sa ClaimsIdentity.RoleClaimType propriété. Par conséquent, les revendications examinées lors des vérifications de rôle peuvent être d’un type différent pour différentes identités associées au principal.

Constructeurs

ClaimsPrincipal()

Initialise une nouvelle instance de la classe ClaimsPrincipal.

ClaimsPrincipal(BinaryReader)

Initialise une instance de la classe ClaimsPrincipal avec le BinaryReader spécifié.

ClaimsPrincipal(IEnumerable<ClaimsIdentity>)

Initialise une nouvelle instance de la classe ClaimsPrincipal avec les identités basées sur les revendications spécifiées.

ClaimsPrincipal(IIdentity)

Initialise une nouvelle instance de la classe ClaimsPrincipal à partir de l’identité spécifiée.

ClaimsPrincipal(IPrincipal)

Initialise une nouvelle instance de la classe ClaimsPrincipal issue du serveur principal spécifié.

ClaimsPrincipal(SerializationInfo, StreamingContext)
Obsolète.

Initialise une nouvelle instance de la classe ClaimsPrincipal à partir du flux sérialisé créé à l’aide de ISerializable.

Propriétés

Claims

Obtient une collection qui contient toutes les revendications de toutes les identités basées sur les revendications associées à ce principal de revendications.

ClaimsPrincipalSelector

Obtient ou définit le délégué utilisé pour sélectionner le principal des revendications retourné par la propriété Current.

Current

Obtient le serveur de revendications principal.

CustomSerializationData

Contient les données supplémentaires fournies par un type dérivé. En règle générale, définie au moment de l’appel de WriteTo(BinaryWriter, Byte[]).

Identities

Obtient une collection qui contient toutes les identités de revendications associées à ce serveur de revendications principal.

Identity

Obtient l’identité principale basée sur les revendications associée à ce principal de revendications.

PrimaryIdentitySelector

Obtient ou définit le délégué utilisé pour sélectionner l’identité basée sur les revendications retournée par la propriété Identity.

Méthodes

AddIdentities(IEnumerable<ClaimsIdentity>)

Ajoute au serveur de revendications principal les identités basées sur les revendications spécifiées.

AddIdentity(ClaimsIdentity)

Ajoute l’identité basée sur les revendications spécifiée à ce principal de revendications.

Clone()

Retourne une copie de cette instance.

CreateClaimsIdentity(BinaryReader)

Crée une nouvelle identité basée sur les revendications.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
FindAll(Predicate<Claim>)

Récupère toutes les revendications qui sont mises en correspondance par le prédicat spécifié.

FindAll(String)

Récupère toutes les revendications qui ont le type de revendication spécifié.

FindFirst(Predicate<Claim>)

Extrait la première revendication qui est mise en correspondance par le prédicat spécifié.

FindFirst(String)

Extrait la première revendication avec le type de revendication spécifié.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetObjectData(SerializationInfo, StreamingContext)

Renseigne des SerializationInfo avec les données nécessaires à la sérialisation de l'objet ClaimsPrincipal actuel.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
HasClaim(Predicate<Claim>)

Détermine si l’une des identités de revendications associées à ce serveur de revendications principal contient une revendication qui correspond au prédicat spécifié.

HasClaim(String, String)

Détermine si l’une des identités de revendications associées à ce serveur de revendications principal contient une revendication qui correspond au type et à la valeur spécifiés.

IsInRole(String)

Retourne une valeur qui indique si l’entité (utilisateur) représentée par ce serveur de revendications principal est dans le rôle spécifié.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
WriteTo(BinaryWriter, Byte[])

Sérialise à l’aide d’un BinaryWriter.

WriteTo(BinaryWriter)

Sérialise à l’aide d’un BinaryWriter.

S’applique à

Voir aussi