Partager via


SessionSecurityTokenHandler Classe

Définition

Qui SecurityTokenHandler traite les jetons de sécurité de type SessionSecurityToken.

public ref class SessionSecurityTokenHandler : System::IdentityModel::Tokens::SecurityTokenHandler
public class SessionSecurityTokenHandler : System.IdentityModel.Tokens.SecurityTokenHandler
type SessionSecurityTokenHandler = class
    inherit SecurityTokenHandler
Public Class SessionSecurityTokenHandler
Inherits SecurityTokenHandler
Héritage
SessionSecurityTokenHandler
Dérivé

Exemples

Le code XML suivant montre comment remplacer le gestionnaire de jetons de sécurité de session par défaut dans une collection de gestionnaires de jetons par une instance de la classe dans la MachineKeySessionSecurityTokenHandler configuration.

<securityTokenHandlers>
  <remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</securityTokenHandlers>

Remarques

La SessionSecurityTokenHandler classe sérialise, désérialise et valide les jetons de session. Les jetons de session sont des jetons de type SessionSecurityToken. La SessionSecurityTokenHandler classe sérialise les jetons vers et à partir du format de cookie. Par défaut, la classe sérialise les jetons en éléments conversation 1.3 WS-Secure Conversation Février 2005 ou WS-Secure Conversation 1.3 <wsc:SecurityContextToken> . Les jetons de session sont utilisés par le WSFederationAuthenticationModule (WSFAM) et le SessionAuthenticationModule (SAM) pour stocker des informations sur une session, ce qui est principalement ClaimsPrincipal associé à l’utilisateur authentifié et aux heures de début et d’expiration de la session.

Dans les scénarios passifs, les WSFederationAuthenticationModule appels à partir du SessionAuthenticationModule pipeline d’authentification (SAM) pour créer un jeton de session à partir de celui ClaimsPrincipal qui représente l’utilisateur authentifié. Le SAM utilise sa configuration SessionSecurityTokenHandler pour créer le jeton et le sérialiser dans un cookie (et pour désérialiser le jeton à partir d’un cookie sur les demandes suivantes). Le sam utilise une instance de sa classe configurée CookieHandler pour réécrire le cookie dans la réponse HTTP. Ce cookie est ensuite retourné au client et, lors des demandes suivantes, le client peut présenter le cookie plutôt que de renvoyer un aller-retour au fournisseur d’identité pour obtenir à nouveau un jeton de sécurité. Pour plus d’informations sur le fonctionnement des sessions avec WIF, consultez gestion des sessions WIF.

Note

L’élément <de configuration securityTokenHandlers> peut être utilisé pour spécifier un SessionSecurityTokenHandler qui a la responsabilité de sécuriser les sessions de l’application. Les développeurs doivent être prudents lors de la modification de ce paramètre de configuration, car un système mal configuré peut entraîner une compromission de l’application. Par exemple, la spécification d’une collection Transforms dérivée SessionSecurityTokenHandler et passage d’une collection Transforms vide (CookieTransform) à la base entraîne la sérialisation de l’identité des utilisateurs dans un cookie qui n’a pas été protégé. Cela peut permettre à un attaquant de modifier l’identité et donc de modifier les privilèges d’accès.

Si le jeton de session est en mode référence, autrement dit, sa SessionSecurityToken.IsReferenceMode propriété est true, le gestionnaire de jetons de session sérialise uniquement les propriétés du jeton de session qui sont nécessaires pour régénérer sa clé dans le SessionSecurityTokenCache. Dans le cas par défaut, la SessionSecurityTokenCacheKey classe est utilisée pour représenter les clés de cache, et le gestionnaire de jetons écrit les propriétés et SessionSecurityToken.KeyGeneration les SessionSecurityToken.ContextId propriétés du jeton. Si le jeton de session n’est pas en mode référence, autrement dit, la SessionSecurityToken.IsReferenceMode propriété est false, puis, en plus des propriétés mentionnées précédemment, le gestionnaire appelle la ApplyTransforms méthode sur un tableau d’octets sérialisé à partir du jeton et stocke également la valeur résultante dans le cookie. Pour plus d’informations sur la sérialisation du jeton, consultez la SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) méthode.

La Transforms propriété obtient la liste des transformations appliquées au jeton de session dans la ApplyTransforms méthode. Toutes les transformations dérivent de la CookieTransform classe. Dans le cas par défaut, l’application DeflateCookieTransform et la ProtectedDataCookieTransform valeur sont appliquées. Utilise ProtectedDataCookieTransform l’API de protection des données (DPAPI) pour protéger le matériel de cookie. DPAPI utilise une clé spécifique à l’ordinateur sur lequel il s’exécute dans ses algorithmes de protection. Pour cette raison, le gestionnaire de jetons de session par défaut n’est pas utilisable dans les scénarios de batterie de serveurs Web, car dans de tels scénarios, les jetons écrits sur un ordinateur peuvent avoir besoin d’être lus sur un autre ordinateur. Vous pouvez utiliser de nombreuses stratégies pour contourner ce problème. Par exemple, vous pouvez :

Pour plus d’informations sur l’utilisation de sessions dans des scénarios de batterie de serveurs web, consultez WIF et Web Farms.

Il SessionSecurityTokenHandler est inclus dans la collection de gestionnaires de jetons par défaut . Toutefois, vous pouvez le remplacer par un gestionnaire de jetons de session personnalisé en spécifiant d’abord un <élément remove> sous l’élément <securityTokenHandlers> pour supprimer le gestionnaire par défaut de la collection, puis en ajoutant votre gestionnaire de jetons personnalisé à l’aide de l’élément <d’ajout> . Par défaut, vous pouvez spécifier la durée de vie du jeton par défaut en incluant l’élément <sessionTokenRequirement> sous l’élément <add> . Vous pouvez concevoir un gestionnaire de jetons personnalisé pour prendre des éléments de configuration personnalisés sous l’élément <add> en remplaçant la LoadCustomConfiguration méthode pour fournir la logique pour les traiter.

Constructeurs

Nom Description
SessionSecurityTokenHandler()

Initialise une nouvelle instance de la SessionSecurityTokenHandler classe qui utilise les transformations de cookie par défaut et la durée de vie des jetons.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>, TimeSpan)

Initialise une nouvelle instance de la SessionSecurityTokenHandler classe qui utilise les transformations de cookie spécifiées et la durée de vie des jetons.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>)

Initialise une nouvelle instance de la SessionSecurityTokenHandler classe qui utilise les transformations de cookie spécifiées.

Champs

Nom Description
DefaultCookieTransforms

Collection en lecture seule qui contient la liste des transformations par défaut à appliquer aux cookies, le DeflateCookieTransform et le ProtectedDataCookieTransform.

DefaultLifetime

Constante qui spécifie la durée de vie par défaut pour les cookies, dix heures.

Propriétés

Nom Description
CanValidateToken

Obtient une valeur qui indique si ce gestionnaire prend en charge la validation des jetons de type SessionSecurityToken.

CanWriteToken

Obtient une valeur qui indique si ce gestionnaire peut écrire des jetons de type SessionSecurityToken.

Configuration

Obtient ou définit l’objet SecurityTokenHandlerConfiguration qui fournit la configuration de l’instance actuelle.

(Hérité de SecurityTokenHandler)
ContainingCollection

Obtient la collection de gestionnaires de jetons qui contient l’instance actuelle.

(Hérité de SecurityTokenHandler)
CookieElementName

Obtient le nom de l’élément cookie.

CookieNamespace

Obtient l’espace de noms de l’élément cookie.

DefaultTokenLifetime

Obtient la durée de vie du jeton par défaut.

TokenLifetime

Obtient ou définit la durée de vie du jeton.

TokenType

Obtient le type des jetons que ce gestionnaire traite.

Transforms

Obtient les transformations qui seront appliquées au cookie.

Méthodes

Nom Description
ApplyTransforms(Byte[], Boolean)

Applique les transformations spécifiées par la Transforms propriété pour encoder ou décoder le cookie spécifié.

CanReadKeyIdentifierClause(XmlReader)

Retourne une valeur qui indique si l’élément XML référencé par le lecteur XML spécifié est une clause d’identificateur de clé qui peut être désérialisée par cette instance.

(Hérité de SecurityTokenHandler)
CanReadToken(String)

Retourne une valeur qui indique si la chaîne spécifiée peut être désérialisée en tant que jeton du type traité par cette instance.

(Hérité de SecurityTokenHandler)
CanReadToken(XmlReader)

Retourne une valeur qui indique si le lecteur est positionné sur un <wsc:SecurityContextToken> élément.

CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Retourne une valeur qui indique si la clause d’identificateur de clé spécifiée peut être sérialisée par cette instance.

(Hérité de SecurityTokenHandler)
CreateSecurityTokenReference(SecurityToken, Boolean)

En cas de substitution dans une classe dérivée, crée la référence de jeton de sécurité pour les jetons traités par cette classe. Cette méthode est généralement appelée par un service de jeton de sécurité (STS).

(Hérité de SecurityTokenHandler)
CreateSessionSecurityToken(ClaimsPrincipal, String, String, DateTime, DateTime)

Crée une SessionSecurityToken base basée sur le principal de revendications et l’intervalle de temps spécifiés pendant lesquels le jeton est valide.

CreateToken(SecurityTokenDescriptor)

Crée un jeton de sécurité basé sur le descripteur de jeton spécifié.

DetectReplayedToken(SecurityToken)

En cas de substitution dans une classe dérivée, lève une exception si le jeton spécifié est détecté comme relecture.

(Hérité de SecurityTokenHandler)
Equals(Object)

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

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetTokenTypeIdentifiers()

Obtient les URI de type de jeton pour les types de jetons qui peuvent être traités par ce gestionnaire.

GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
LoadCustomConfiguration(XmlNodeList)

Charge la configuration personnalisée à partir de XML.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ReadKeyIdentifierClause(XmlReader)

En cas de substitution dans une classe dérivée, désérialise le CODE XML référencé par le lecteur XML spécifié à une clause d’identificateur de clé qui fait référence à un jeton traité par la classe dérivée.

(Hérité de SecurityTokenHandler)
ReadToken(Byte[], SecurityTokenResolver)

Lit à SessionSecurityToken partir d’un flux d’octets à l’aide du programme de résolution de jeton spécifié.

ReadToken(String)

En cas de substitution dans une classe dérivée, désérialise la chaîne spécifiée en un jeton du type traité par la classe dérivée.

(Hérité de SecurityTokenHandler)
ReadToken(XmlReader, SecurityTokenResolver)

Lit l’utilisation SessionSecurityToken du lecteur XML et du programme de résolution de jeton spécifiés.

ReadToken(XmlReader)

Lit l’utilisation SessionSecurityToken du lecteur XML spécifié.

SetTransforms(IEnumerable<CookieTransform>)

Définit les transformations qui seront appliquées aux cookies.

ToString()

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

(Hérité de Object)
TraceTokenValidationFailure(SecurityToken, String)

Trace l’événement d’échec pendant la validation des jetons de sécurité lorsque le suivi est activé.

(Hérité de SecurityTokenHandler)
TraceTokenValidationSuccess(SecurityToken)

Trace la validation réussie de l’événement de jetons de sécurité lors de l’activation du suivi.

(Hérité de SecurityTokenHandler)
ValidateSession(SessionSecurityToken)

Détermine si la session associée au jeton spécifié est toujours valide. La validité est déterminée en vérifiant les propriétés et ValidTo les ValidFrom propriétés du jeton spécifié. Une exception est levée si la session n’est plus valide.

ValidateToken(SecurityToken)

Valide le jeton spécifié et retourne ses revendications.

ValidateToken(SessionSecurityToken, String)

Valide le jeton de session spécifié et retourne ses revendications.

WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

En cas de substitution dans une classe dérivée, sérialise la clause d’identificateur de clé spécifiée en XML. La clause d’identificateur de clé doit être du type pris en charge par la classe dérivée.

(Hérité de SecurityTokenHandler)
WriteToken(SecurityToken)

En cas de substitution dans une classe dérivée, sérialise le jeton de sécurité spécifié dans une chaîne. Le jeton doit être du type traité par la classe dérivée.

(Hérité de SecurityTokenHandler)
WriteToken(SessionSecurityToken)

Sérialise le jeton spécifié dans un tableau d’octets.

WriteToken(XmlWriter, SecurityToken)

Sérialise le jeton spécifié à l’aide de l’enregistreur XML spécifié.

S’applique à

Voir aussi