SessionSecurityTokenHandler Class

Definition

SecurityTokenHandler qui traite des jetons de sécurité de type SessionSecurityToken.A SecurityTokenHandler that processes security tokens of 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
Inheritance
SessionSecurityTokenHandler
Derived

Examples

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 MachineKeySessionSecurityTokenHandler dans la configuration.The following XML shows how to replace the default session security token handler in a token handler collection with an instance of the MachineKeySessionSecurityTokenHandler class in 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>  

Remarks

La classe SessionSecurityTokenHandler sérialise, désérialise et valide les jetons de session.The SessionSecurityTokenHandler class serializes, deserializes, and validates session tokens. Les jetons de session sont des jetons de type SessionSecurityToken.Session tokens are tokens of type SessionSecurityToken. La classe SessionSecurityTokenHandler sérialise les jetons vers et à partir du format de cookie.The SessionSecurityTokenHandler class serializes the tokens to and from cookie format. Par défaut, la classe sérialise les jetons en éléments webFeb2005 conversation WS-Secure conversation ou WS-Secure Conversation <wsc:SecurityContextToken> 1,3.By default, the class serializes tokens into WS-Secure Conversation Feb2005 or WS-Secure Conversation 1.3 <wsc:SecurityContextToken> elements. Les jetons de session sont utilisés par le WSFederationAuthenticationModule (WSFAM) et le SessionAuthenticationModule (SAM) pour stocker des informations sur une session. il s’agit principalement de la ClaimsPrincipal associée à l’utilisateur authentifié et des heures de début et d’expiration de session.Session tokens are used by the WSFederationAuthenticationModule (WSFAM) and the SessionAuthenticationModule (SAM) to store information about a session, this is primarily the ClaimsPrincipal associated with the authenticated user and the session start and expiration times.

Dans les scénarios passifs, le WSFederationAuthenticationModule appelle le SessionAuthenticationModule (SAM) à partir du pipeline d’authentification pour créer un jeton de session à partir du ClaimsPrincipal qui représente l’utilisateur authentifié.In passive scenarios, the WSFederationAuthenticationModule calls into the SessionAuthenticationModule (SAM) from the authentication pipeline to create a session token from the ClaimsPrincipal that represents the authenticated user. Le SAM utilise son SessionSecurityTokenHandler configuré pour créer le jeton et le sérialiser dans un cookie (et pour désérialiser le jeton à partir d’un cookie lors des demandes suivantes).The SAM uses its configured SessionSecurityTokenHandler to create the token and to serialize it into a cookie (and to deserialize the token from a cookie on subsequent requests). Le SAM utilise une instance de sa classe de CookieHandler configurée pour réécrire le cookie dans la réponse HTTP.The SAM uses an instance of its configured CookieHandler class to write the cookie back to the HTTP Response. Ce cookie est ensuite renvoyé au client et, lors des demandes suivantes, le client peut présenter le cookie plutôt que d’effectuer un aller-retour vers le fournisseur d’identité pour récupérer un jeton de sécurité.This cookie is then returned to the client and on subsequent requests the client can present the cookie rather than making a round trip back to the identity provider to re-obtain a security token. Pour plus d’informations sur la façon dont les sessions fonctionnent avec WIF, consultez gestion de session WIF.For more information about how sessions operate with WIF, see WIF Session Management.

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.The <securityTokenHandlers> configuration element can be used to specify a SessionSecurityTokenHandler that has the responsibility for securing the application's sessions. Les développeurs doivent être prudents lors de la modification de ce paramètre de configuration, car un système mal configuré peut compromettre l’application.Developers should use caution when changing this configuration setting, as a misconfigured system could result in application compromise. Par exemple, la spécification d’un SessionSecurityTokenHandler dérivé et le passage d’une collection de transformations vide (CookieTransform) à la base entraîne la sérialisation de l’identité des utilisateurs dans un cookie qui n’était pas protégé.For example, specifying a derived SessionSecurityTokenHandler and passing an empty Transforms (CookieTransform) collection to the base, would result in the users identity being serialized into a cookie that was not protected. Cela peut permettre à une personne malveillante de modifier l’identité et par conséquent de modifier les privilèges d’accès.This could allow an attacker to modify the identity and therefore change access privileges.

Si le jeton de session est en mode de référence, autrement dit si sa propriété SessionSecurityToken.IsReferenceMode est true, le gestionnaire de jetons de session sérialise uniquement les propriétés du jeton de session qui sont nécessaires à la régénération de sa clé dans le SessionSecurityTokenCache.If the session token is in reference mode, that is, its SessionSecurityToken.IsReferenceMode property is true, the session token handler only serializes properties of the session token that are needed to regenerate its key in the SessionSecurityTokenCache. Dans le cas par défaut, la classe SessionSecurityTokenCacheKey est utilisée pour représenter des clés de cache, et le gestionnaire de jetons écrit les propriétés SessionSecurityToken.ContextId et SessionSecurityToken.KeyGeneration du jeton.In the default case, the SessionSecurityTokenCacheKey class is used to represent cache keys, and the token handler writes the SessionSecurityToken.ContextId and SessionSecurityToken.KeyGeneration properties of the token. Si le jeton de session n’est pas en mode de référence, autrement dit, la propriété SessionSecurityToken.IsReferenceMode est false, puis, en plus des propriétés mentionnées précédemment, le gestionnaire appelle la méthode ApplyTransforms sur un tableau d’octets sérialisé à partir du jeton et stocke également la valeur résultante dans le cookie.If the session token is not in reference mode, that is, the SessionSecurityToken.IsReferenceMode property is false, then, in addition to the properties mentioned previously, the handler invokes the ApplyTransforms method on a byte array serialized from the token and stores the resulting value in the cookie as well. Pour plus d’informations sur la façon dont le jeton est sérialisé, consultez la méthode SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken).For more details about how the token is serialized, see the SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) method.

La propriété Transforms obtient la liste des transformations qui sont appliquées au jeton de session dans la méthode ApplyTransforms.The Transforms property gets the list of transforms that are applied to the session token in the ApplyTransforms method. Toutes les transformations dérivent de la classe CookieTransform.All transforms derive from the CookieTransform class. Dans le cas par défaut, les DeflateCookieTransform et les ProtectedDataCookieTransform sont appliqués.In the default case the DeflateCookieTransform and the ProtectedDataCookieTransform are applied. Le ProtectedDataCookieTransform utilise l’API de protection des données (DPAPI) pour protéger les éléments de cookie.The ProtectedDataCookieTransform uses the Data Protection API (DPAPI) to protect the cookie material. DPAPI utilise une clé spécifique à l’ordinateur sur lequel il s’exécute dans ses algorithmes de protection.DPAPI uses a key that is specific to the computer on which it is running in its protection algorithms. 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.For this reason, the default session token handler is not usable in Web farm scenarios because, in such scenarios, tokens written on one computer may need to be read on another computer. Vous pouvez utiliser de nombreuses stratégies pour contourner ce problème.You can use many strategies to circumvent this issue. Vous pouvez par exemple :For example, you can:

Pour plus d’informations sur l’utilisation des sessions dans les scénarios de batterie de serveurs Web, consultez WIF et batteriesde serveurs Web.For more information about using sessions in Web farm scenarios, see WIF and Web Farms.

La SessionSecurityTokenHandler est incluse 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 <ajouter> .The SessionSecurityTokenHandler is included in the default token handler collection; however, you can replace it with a custom session token handler by first specifying a <remove> element under the <securityTokenHandlers> element to remove the default handler from the collection and then adding your custom token handler using the <add> element. 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>.By default, you can specify the default token lifetime by including the <sessionTokenRequirement> element under the <add> element. Vous pouvez concevoir un gestionnaire de jetons personnalisé pour prendre des éléments de configuration personnalisés sous l’élément <add> en substituant la méthode LoadCustomConfiguration pour fournir la logique permettant de les traiter.You can design a custom token handler to take custom configuration elements under the <add> element by overriding the LoadCustomConfiguration method to provide the logic to process them.

Constructors

SessionSecurityTokenHandler()

Initialise une nouvelle instance de la classe SessionSecurityTokenHandler qui utilise les transformations de cookies et la durée de vie de jeton par défaut.Initializes a new instance of the SessionSecurityTokenHandler class that uses the default cookie transforms and token lifetime.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>)

Initialise une nouvelle instance de la classe SessionSecurityTokenHandler qui utilise les transformations de cookies spécifiées.Initializes a new instance of the SessionSecurityTokenHandler class that uses the specified cookie transforms.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>, TimeSpan)

Initialise une nouvelle instance de la classe SessionSecurityTokenHandler qui utilise les transformations de cookies et la durée de vie de jeton spécifiées.Initializes a new instance of the SessionSecurityTokenHandler class that uses the specified cookie transforms and token lifetime.

Fields

DefaultCookieTransforms

Collection en lecture seule qui contient la liste des transformations par défaut à appliquer aux cookies, à DeflateCookieTransform et à ProtectedDataCookieTransform.A read only collection that contains the list of default transforms to be applied to cookies, the DeflateCookieTransform and the ProtectedDataCookieTransform.

DefaultLifetime

Constante qui spécifie la durée de vie par défaut des cookies, soit dix heures.A constant that specifies the default lifetime for cookies, ten hours.

Properties

CanValidateToken

Obtient une valeur qui indique si ce gestionnaire prend en charge la validation des jetons du type SessionSecurityToken.Gets a value that indicates whether this handler supports validation of tokens of type SessionSecurityToken.

CanWriteToken

Obtient une valeur qui indique si ce gestionnaire peut écrire les jetons de type SessionSecurityToken.Gets a value that indicates whether this handler can write tokens of type SessionSecurityToken.

Configuration

Obtient ou définit l'objet SecurityTokenHandlerConfiguration qui fournit la configuration pour l'instance actuelle.Gets or sets the SecurityTokenHandlerConfiguration object that provides configuration for the current instance.

(Inherited from SecurityTokenHandler)
ContainingCollection

Obtient la collection de gestionnaires de jetons qui contient l'instance actuelle.Gets the token handler collection that contains the current instance.

(Inherited from SecurityTokenHandler)
CookieElementName

Obtient le nom de l'élément de cookie.Gets the name for the cookie element.

CookieNamespace

Obtient l'espace de noms pour l'élément de cookie.Gets the namespace for the cookie element.

DefaultTokenLifetime

Obtient la durée de vie du jeton par défaut.Gets the default token lifetime.

TokenLifetime

Obtient ou définit la durée de vie du jeton.Gets or sets the token lifetime.

TokenType

Obtient le type de jetons traités par ce gestionnaire.Gets the type of the tokens that this handler processes.

Transforms

Obtient les transformations qui seront appliquées au cookie.Gets the transforms that will be applied to the cookie.

Methods

ApplyTransforms(Byte[], Boolean)

Applique les transformations spécifiées par la propriété Transforms pour encoder ou décoder le cookie spécifié.Applies the transforms specified by the Transforms property to either encode or decode the specified cookie.

CanReadKeyIdentifierClause(XmlReader)

Retourne une valeur qui indique si l'élément XML dont il est fait référence par le lecteur XML spécifié est une clause de l'identificateur de clé qui peut être désérialisée par cette instance.Returns a value that indicates whether the XML element referred to by the specified XML reader is a key identifier clause that can be deserialized by this instance.

(Inherited from SecurityTokenHandler)
CanReadToken(String)

Retourne une valeur qui indique si la chaîne spécifiée peut être désérialisée comme un jeton du type traité par cette instance.Returns a value that indicates whether the specified string can be deserialized as a token of the type processed by this instance.

(Inherited from SecurityTokenHandler)
CanReadToken(XmlReader)

Retourne une valeur qui indique si le lecteur est positionné sur un élément <wsc:SecurityContextToken> .Returns a value that indicates whether the reader is positioned at a <wsc:SecurityContextToken> element.

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.Returns a value that indicates whether the specified key identifier clause can be serialized by this instance.

(Inherited from 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.When overridden in a derived class, creates the security token reference for tokens processed by that class. Cette méthode est généralement appelée par un service d'émission de jeton de sécurité (STS).This method is typically called by a security token service (STS).

(Inherited from SecurityTokenHandler)
CreateSessionSecurityToken(ClaimsPrincipal, String, String, DateTime, DateTime)

Crée un SessionSecurityToken en fonction du principal des revendications spécifié et de la plage horaire pendant laquelle le jeton est valide.Creates a SessionSecurityToken based on the specified claims principal and time range during which the token is valid.

CreateToken(SecurityTokenDescriptor)

Crée un jeton de sécurité en fonction du descripteur de jetons spécifié.Creates a security token based on the specified token descriptor.

DetectReplayedToken(SecurityToken)

En cas de substitution dans une classe dérivée, lève une exception si le jeton spécifié est identifié comme étant relu.When overridden in a derived class, throws an exception if the specified token is detected as being replayed.

(Inherited from SecurityTokenHandler)
Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Inherited from Object)
GetTokenTypeIdentifiers()

Obtient les URI d'identificateur de type de jeton pour les types de jetons qui peuvent être gérés par ce gestionnaire.Gets the token type URIs for the token types that can be processed by this handler.

GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
LoadCustomConfiguration(XmlNodeList)

Charge la configuration personnalisée à partir du XML.Loads custom configuration from XML.

MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
ReadKeyIdentifierClause(XmlReader)

En cas de substitution dans une classe dérivée, désérialise le XML référencé par le lecteur XML spécifié en clause d'identificateur de clé qui référence un jeton traité par la classe dérivée.When overridden in a derived class, deserializes the XML referenced by the specified XML reader to a key identifier clause that references a token processed by the derived class.

(Inherited from SecurityTokenHandler)
ReadToken(Byte[], SecurityTokenResolver)

Lit le SessionSecurityToken d'un flux d'octets à l'aide du programme de résolution de jetons spécifié.Reads the SessionSecurityToken from a stream of bytes by using the specified token resolver.

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 cette classe dérivée.When overridden in a derived class, deserializes the specified string to a token of the type processed by the derived class.

(Inherited from SecurityTokenHandler)
ReadToken(XmlReader)

Lit le SessionSecurityToken à l'aide du lecteur XML spécifié.Reads the SessionSecurityToken using the specified XML reader.

ReadToken(XmlReader, SecurityTokenResolver)

Lit le SessionSecurityToken à l'aide du lecteur XML et du programme de résolution de jeton spécifiés.Reads the SessionSecurityToken using the specified XML reader and token resolver.

SetTransforms(IEnumerable<CookieTransform>)

Définit les transformations qui seront appliquées aux cookies.Sets the transforms that will be applied to cookies.

ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Inherited from Object)
TraceTokenValidationFailure(SecurityToken, String)

Effectue le traçage de l'événement d'échec lors de la validation des jetons de sécurité lorsque le traçage est activé.Traces the failure event during the validation of security tokens when tracing is enabled.

(Inherited from SecurityTokenHandler)
TraceTokenValidationSuccess(SecurityToken)

Effectue le traçage de la validation réussie de l'événement de jetons de sécurité lorsque le traçage est activé.Traces the successful validation of security tokens event when tracing is enabled.

(Inherited from SecurityTokenHandler)
ValidateSession(SessionSecurityToken)

Détermine si la session associée au jeton spécifié est toujours valide.Determines whether the session associated with the specified token is still valid. La validité est déterminée en vérifiant les propriétés ValidFrom et ValidTo du jeton spécifié.Validity is determined by checking the ValidFrom and ValidTo properties of the specified token. Exception levée si la session n'est plus valide.An exception is thrown if the session is no longer valid.

ValidateToken(SecurityToken)

Valide le jeton spécifié et retourne ses revendications.Validates the specified token and returns its claims.

ValidateToken(SessionSecurityToken, String)

Valide le jeton de session spécifié et retourne ses revendications.Validates the specified session token and returns its claims.

WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

En cas de substitution dans une classe dérivée, sérialise la clause d'identificateur de clé spécifiée au format XML.When overridden in a derived class, serializes the specified key identifier clause to XML. La clause de l'identificateur de clé doit être du type pris en charge par la classe dérivée.The key identifier clause must be of the type supported by the derived class.

(Inherited from SecurityTokenHandler)
WriteToken(SecurityToken)

En cas de substitution dans une classe dérivée, sérialise le jeton de sécurité spécifié en chaîne.When overridden in a derived class, serializes the specified security token to a string. Le jeton doit être du type traité par la classe dérivée.The token must be of the type processed by the derived class.

(Inherited from SecurityTokenHandler)
WriteToken(SessionSecurityToken)

Sérialise le jeton spécifié dans un tableau d'octets.Serializes the specified token into a byte array.

WriteToken(XmlWriter, SecurityToken)

Sérialise le jeton spécifié à l'aide du writer XML spécifié.Serializes the specified token by using the specified XML writer.

Applies to

See also