sessionState, élément (Schéma des paramètres ASP.NET)

Configure des paramètres d'état de session pour l'application actuelle.

<sessionState 
    mode="[Off|InProc|StateServer|SQLServer|Custom]"
    timeout="number of minutes"
    cookieName="session identifier cookie name"
    cookieless=
         "[true|false|AutoDetect|UseCookies|UseUri|UseDeviceProfile]"
    regenerateExpiredSessionId="[True|False]"
    sessionIDManagerType="session manager type"
    sqlConnectionString="sql connection string"
    sqlCommandTimeout="number of seconds"
    allowCustomSqlDatabase="[True|False]"
    useHostingIdentity="[True|False]"
    stateConnectionString="tcpip=server:port"
    stateNetworkTimeout="number of seconds"
    customProvider="custom provider name"
    compressionEnabled="[True|False]"
    sqlConnectionRetryInterval="number of seconds">
    <providers>...</providers>
</sessionState>

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut

Description

allowCustomSqlDatabase

Attribut Boolean facultatif.

Spécifie si la base de données SQL d'état de session peut être une base de données personnalisée au lieu de la base de données par défaut ASP.NET. Si la valeur est false, vous ne pouvez pas spécifier de catalogue initial ni de base de données comme valeur de l'attribut sqlConnectionString. La base de données SQL d'état de session par défaut est la base de données ASPState. Pour plus d'informations, consultez Modes d'état de session.

Cet attribut est une nouveauté de .NET Framework version 2.0.

La valeur par défaut est false.

compressionEnabled

Attribut Boolean facultatif.

Spécifie si la compression est appliquée aux données d'état de session.

La valeur par défaut est false.

cookieless

Attribut HttpCookieMode facultatif.

Spécifie comment les cookies sont utilisés dans une application Web.

L'attribut cookieless peut avoir l'une des valeurs suivantes : La valeur par défaut est la valeur UseCookies.

RemarqueRemarque
Lorsque vous configurez un site Web ASP.NET AJAX, utilisez uniquement la valeur par défaut de UseCookies pour l'attribut cookieless.Les paramètres qui utilisent des cookies encodés dans l'URL ne sont pas pris en charge par les bibliothèques de script client ASP.NET AJAX.
ValeurDescription
AutoDetect ASP.NET détermine si le navigateur ou l'appareil qui effectue la demande prend en charge les cookies.Si le périphérique ou le navigateur qui effectue la requête prend en charge les cookies, AutoDetect utilise des cookies pour rendre les données utilisateur persistantes ; sinon, un identificateur est saisi dans la chaîne de requête.Si le navigateur ou le périphérique prend en charge les cookies mais si ceux-ci sont actuellement désactivés, les cookies sont néanmoins utilisés par la fonctionnalité qui effectue la requête.
UseCookies Les cookies rendent les données utilisateur persistantes, que le navigateur ou le périphérique prenne en charge les cookies ou non.
UseDeviceProfile ASP.NET détermine s'il faut utiliser des cookies en fonction du paramètre HttpBrowserCapabilities.Si le paramètre HttpBrowserCapabilities indique que le navigateur ou le périphérique prend en charge les cookies, ces derniers sont utilisés ; sinon, un identificateur est utilisé dans la chaîne de requête.
UseUri La fonctionnalité appelante utilise la chaîne de requête pour stocker un identificateur, que le navigateur ou le périphérique prenne en charge les cookies, ou non.

cookieName

Attribut String facultatif.

Spécifie le nom du cookie qui stocke l'identificateur de session.

Cet attribut est une nouveauté de .NET Framework version 2.0.

La valeur par défaut est "ASP.NET_SessionId".

customProvider

Attribut String facultatif.

Spécifie le nom d'un fournisseur d'états de session personnalisé à utiliser pour le stockage et la récupération des données d'état de session. Le fournisseur est spécifié dans l'élément providers. Le fournisseur est utilisé uniquement lorsque le mode État de session a la valeur Custom. Pour plus d'informations, consultez Modes d'état de session.

Cet attribut est une nouveauté de .NET Framework version 2.0.

La valeur par défaut est une chaîne vide ("").

mode

Attribut SessionStateMode facultatif.

Spécifie l'emplacement de stockage des valeurs de l'état de session. Pour plus d'informations, consultez Modes d'état de session.

L'attribut mode peut avoir l'une des valeurs suivantes : La valeur par défaut est la valeur InProc.

ValeurDescription
Custom L'état de session utilise un magasin de données personnalisé pour stocker les informations d'état de session.
InProc L'état de session est en cours avec un processus de travail ASP.NET.
Off L'état de session est désactivé.
SQLServer L'état de session utilise une base de données SQL Server hors processus pour stocker les informations relatives à l'état.
StateServer L'état de session utilise le service d'état ASP.NET out-of-process pour stocker des informations d'état.

partitionResolverType

Attribut String facultatif.

Spécifie l'emplacement de stockage de l'état de session. Si une valeur est spécifiée dans l'attribut partitionResolverType, les attributs sqlConnectionString et stateConnectionString sont ignorés. La chaîne de connexion retournée par la propriété PartitionResolverType est utilisée avec chaque requête pour se connecter à l'emplacement de serveur approprié pour le reste de la requête. Si la chaîne de connexion n'est pas valide, ASP.NET lève la même exception que celle qui est levée lorsque la chaîne de connexion au serveur configurée n'est pas valide. Cette propriété est utilisée pour partitionner les données d'état de session entre plusieurs nœuds principaux en mode SQL ou serveur d'état.

Cet attribut est une nouveauté de .NET Framework version 2.0.

La valeur par défaut est une chaîne vide.

regenerateExpiredSessionId

Attribut Boolean facultatif.

Spécifie si l'ID de session est publié de nouveau lorsqu'un ID de session périmé est spécifié par le client. Par défaut, les ID de session sont publiés de nouveau uniquement pour le mode cookieless lorsque regenerateExpiredSessionId est activé. Pour plus d'informations, consultez IsCookieless.

Cet attribut est une nouveauté de .NET Framework version 2.0.

La valeur par défaut est true.

sessionIDManagerType

Attribut String facultatif.

Spécifie le type qualifié complet du gestionnaire des identificateurs de session. La valeur par défaut est une chaîne vide.

sqlCommandTimeout

Attribut TimeSpan facultatif.

Spécifie le délai d'expiration, en secondes, des commandes SQL qui utilisent le mode État de session SQL Server. Ce délai représente le nombre autorisé de secondes d'inactivité d'une commande SQL avant son annulation.

Cet attribut est une nouveauté de .NET Framework version 2.0.

La valeur par défaut est 0:00:30 (30 secondes).

sqlConnectionRetryInterval

Attribut TimeSpan facultatif.

Spécifie l'intervalle de temps, en secondes, entre les tentatives de connexion à la base de données.

La valeur par défaut est 0 secondes.

sqlConnectionString

Attribut String facultatif.

Spécifie la chaîne de connexion d'un ordinateur SQL Server. Cet attribut est requis lorsque l'attribut mode a la valeur SQLServer. Pour plus d'informations, consultez Modes d'état de session.

Vous pouvez affecter à cet attribut une sqlConnectionString nommée à partir du nœud connectionStrings ou utiliser la syntaxe suivante :

sqlConnectionString="Data Source=.\SQLServer2005;Initial Catalog=SessionState;Integrated Security=SSPI;"
RemarqueRemarque
Pour améliorer la sécurité de votre application lorsque vous utilisez le mode SQLServer, utilisez la configuration protégée pour protéger la valeur sqlConnectionString en chiffrant la section sessionState de votre configuration.

La valeur par défaut est "data source=127.0.0.1;Integrated Security=SSPI".

stateConnectionString

Attribut String facultatif.

Spécifie le nom ou l'adresse ainsi que le port du serveur sur lequel l'état de session est stocké à distance. La valeur du port doit être 42424. Cet attribut est requis lorsque mode a la valeur StateServer. Assurez-vous que le service d'état ASP.NET est en cours d'exécution sur le serveur distant qui stocke les informations d'état de session. Ce service est installé avec ASP.NET et situé par défaut à l'emplacement %windir%\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. Pour plus d'informations, consultez Modes d'état de session.

RemarqueRemarque
Pour améliorer la sécurité de votre application lorsque vous utilisez le mode StateServer, utilisez la configuration protégée pour protéger la valeur stateConnectionString en chiffrant la section sessionState de la configuration.

La valeur par défaut est "tcpip=127.0.0.1:42424".

stateNetworkTimeout

Attribut TimeSpan facultatif.

Spécifie la durée autorisée d'inactivité, en secondes, de la connexion réseau TCP/IP entre le serveur Web et le serveur d'état avant l'annulation de la requête. Cet attribut est utilisé lorsque l'attribut mode a la valeur StateServer.

La valeur par défaut est 10 secondes.

timeout

Attribut TimeSpan facultatif.

Spécifie la durée, exprimée en minutes, pendant laquelle une session peut rester inactive avant d'être abandonnée. L'attribut timeout ne peut pas avoir une valeur supérieure à 525 600 minutes (1 an) pour les modes de serveur d'état et de serveur in-process.

Le paramètre de configuration timeout de session s'applique uniquement aux pages ASP.NET. La modification de la valeur timeout de session n'affecte pas le délai d'expiration de session des pages ASP. De la même façon, la modification du délai d'expiration de session des pages ASP n'affecte pas le délai d'expiration de session des pages ASP.NET.

La valeur par défaut est 20 minutes.

useHostingIdentity

Attribut Boolean facultatif.

Spécifie si l'état de session revêtira de nouveau l'identité d'hébergement ou empruntera celle du client.

Si la valeur est true, ASP.NET se connecte au magasin d'états de session à l'aide de l'une des informations d'identification suivantes :

  • Processus d'hébergement, à savoir ASPNET pour Microsoft Internet Information Services (IIS) versions 5 et 5.1 ou le SERVICE RÉSEAU pour Microsoft Windows Server 2003.

  • Identité empruntée à l'application, dans le cas où la configuration suivante est utilisée :

    <identity impersonate="true" userName="domaine\nom_utilisateur" password="mot de passe sécurisé" />

Si la valeur est false, ASP.NET se connecte au magasin d'états de session à l'aide des informations d'identification actuellement associées au thread du système d'exploitation pour la requête actuelle. Pour l'emprunt d'identité client, ASP.NET se connecte au magasin d'états de session à l'aide des informations d'identification de sécurité négociées avec le navigateur. Si la valeur est false, ASP.NET ne reprend pas l'identité du processus ou l'identité empruntée à l'application lors de la connexion au magasin d'états de session. Pour plus d'informations, consultez Emprunt d'identité ASP.NET.

Cet attribut est une nouveauté de .NET Framework version 2.0.

La valeur par défaut est true.

RemarqueRemarque
Dans la version 1.1 du .NET Framework, si l'attribut mode avait la valeur SQLServer et que l'emprunt d'identité client était appliqué, ASP.NET se connectait à l'ordinateur SQL Server à l'aide des informations d'identification client de l'emprunt d'identité client ASP.NET.

Attributs hérités

Attributs facultatifs.

Attributs hérités par tous les éléments Section.

Éléments enfants

Élément

Description

providers

Contient une collection de fournisseurs de magasins d'état de session personnalisés.

Éléments parents

Élément

Description

configuration

Élément racine obligatoire dans chaque fichier de configuration utilisé par le Common Language Runtime et les applications .NET Framework.

system.web

Spécifie l'élément racine des paramètres de configuration ASP.NET dans un fichier de configuration et contient des éléments qui configurent des applications Web ASP.NET et contrôlent le comportement des applications.

Notes

L'élément <sessionState> configure les paramètres d'état de session de l'application actuelle.

Lorsqu'un nouveau client commence à interagir avec une application Web, un ID de session est émis et associé à toutes les requêtes suivantes du même client pour toute la durée de validité de la session. Cet ID est utilisé pour conserver l'état, côté serveur, associé à la session cliente entre les requêtes. L'élément <sessionState> contrôle la façon dont l'application ASP.NET établit et maintient cette association pour chaque client.

Ce mécanisme offre une grande souplesse et vous permet d'héberger des informations d'état de session out-of-process et d'effectuer un suivi de l'état sans utiliser de cookies.

Vous pouvez dépasser la taille maximale de l'URI lorsque vous envoyez l'ID de session dans l'URI. Si la combinaison du ticket d'authentification anonyme, du ticket d'authentification par formulaire, de l'ID de session et des données utilisateur donne une valeur supérieure à la longueur maximale autorisée de l'URI, la demande échoue avec une erreur 400 - Demande incorrecte.

Pour utiliser le mode StateServer

  1. Assurez-vous que le service d'état ASP.NET est en cours d'exécution sur le serveur distant chargé de stocker les informations d'état de session.

    Le service d'état ASP.NET est installé avec ASP.NET et se trouve par défaut dans %windir%\Microsoft.NET\Framework\version\aspnet_state.exe.

  2. Dans le fichier Web.config de l'application, affectez "StateServer" à mode et une valeur, par exemple "tcpip=dataserver:42424", à stateConnectionString.

Pour utiliser le mode SQLServer

  1. Sur l'ordinateur SQL Server chargé de stocker l'état de session, exécutez InstallSqlState.sql.

    Par défaut, InstallSqlState.sql est situé dans %windir%\Microsoft.NET\Framework\version.

    Cela crée une base de données appelée ASPState avec de nouvelles procédures stockées et tables nommées ASPStateTempApplications et ASPStateTempSessions dans la base de données TempDB.

  2. Dans le fichier Web.config de l'application, affectez "SQLServer" à mode et une valeur, par exemple "data source=localhost;Integrated Security=SSPI;", à sqlConnectionString.

    RemarqueRemarque

    Vous pouvez utiliser Aspnet_regsql.exe pour réaliser ces étapes.

Pour plus d'informations sur l'accès aux valeurs de configuration de l'élément <sessionState> dans le code d'application et leur modification, consultez SessionStateSection et System.Web.SessionState.

Configuration par défaut

L'élément <sessionState> par défaut n'est pas configuré explicitement dans le fichier Machine.config ou dans le fichier Web.config racine. Toutefois, il s'agit de la configuration par défaut retournée par l'application.

<sessionState 
   mode="InProc" 
   stateConnectionString="tcpip=127.0.0.1:42424" 
   stateNetworkTimeout="10" 
   sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI" 
   sqlCommandTimeout="30" 
   customProvider="" 
   cookieless="UseCookies" 
   cookieName="ASP.NET_SessionId" 
   timeout="20" 
   allowCustomSqlDatabase="false" 
   regenerateExpiredSessionId="true" 
   partitionResolverType="" 
   useHostingIdentity="true">
   <providers>
      <clear />
   </providers>
</sessionState>

Exemple

L'exemple suivant montre comment spécifier des paramètres de configuration d'état de session.

<sessionState
   mode="SQLServer"
   cookieless="true"
   sqlConnectionString=" Integrated Security=SSPI;data source=MySqlServer;"
   sqlCommandTimeout="10" />

Informations sur les éléments

Gestionnaire de section de configuration

SessionStateSection

Membre de configuration

System.Web.SessionState

Emplacements configurables

Machine.config

Web.config racine

Web.config au niveau de l'application

Spécifications

Microsoft Internet Information Services version 5.0, 5.1 ou 6.0

.NET Framework version 1.0, 1.1 ou 2.0

Microsoft Visual Studio 2003 ou Visual Studio 2005

Voir aussi

Tâches

Comment : configurer des répertoires spécifiques à l'aide des paramètres d'emplacement

Comment : verrouiller des paramètres de configuration ASP.NET

Référence

system.web, élément (Schéma des paramètres ASP.NET)

providers, élément de sessionState (Schéma des paramètres ASP.NET)

configuration, élément (Schéma des paramètres généraux)

System.Configuration

System.Web.Configuration

SessionStateSection

System.Web.SessionState

Concepts

Emprunt d'identité ASP.NET

Modes d'état de session

Sécurisation de l'état de session

Hiérarchie du fichier de configuration ASP.NET et héritage

Sécurisation de la configuration ASP.NET

Scénarios de configuration ASP.NET

Autres ressources

Chiffrement des informations de configuration à l'aide de la configuration protégée

Paramètres généraux de configuration (ASP.NET)

Paramètres de configuration ASP.NET

Administration de site Web ASP.NET

API de configuration ASP.NET