Classe SessionStateSection
Configure l’état de session pour une application Web.
Syntaxe
class SessionStateSection : ConfigurationSectionWithCollection
Méthodes
Le tableau suivant répertorie les méthodes exposées par la classe SessionStateSection
.
Nom | Description |
---|---|
Ajouter | (Hérité de ConfigurationSectionWithCollection.) |
Clear | (Hérité de ConfigurationSectionWithCollection .) |
Get | (Hérité de ConfigurationSectionWithCollection .) |
GetAllowDefinition | (Hérité de ConfigurationSection.) |
GetAllowLocation | (Hérité de ConfigurationSection .) |
Remove | (Hérité de ConfigurationSectionWithCollection .) |
RevertToParent | (Hérité de ConfigurationSection .) |
SetAllowDefinition | (Hérité de ConfigurationSection .) |
SetAllowLocation | (Hérité de ConfigurationSection .) |
Propriétés
Le tableau suivant répertorie les propriétés exposées par la classe SessionStateSection
.
Nom | Description |
---|---|
AllowCustomSqlDatabase |
Une valeur boolean en lecture/écriture. true si l’utilisateur est autorisé à spécifier la valeur de catalogue initiale dans la propriété SqlConnectionString ; sinon, false . Par défaut, il s’agit de false . |
Cookieless |
Valeur de lecture/écriture sint32 qui configure la façon dont les cookies sont utilisés pour identifier les sessions clientes. Les valeurs possibles sont répertoriées plus loin dans la section Remarques. Remarque : il existe deux façons pour l’état de session de stocker l’ID unique qui associe le client à une session de serveur : en stockant un cookie HTTP sur le client ou en encodant l’ID de session dans l’URL. Le stockage de l’ID de session dans le cookie est plus sécurisé, mais le navigateur client doit prendre en charge les cookies. Pour les applications qui autorisent les clients qui ne prennent pas en charge les cookies, tels que divers appareils mobiles, l’ID de session peut être stocké dans l’URL. L’option URL présente plusieurs inconvénients. Elle exige que les liens sur le site soient relatifs et que la page soit redirigée au début de la session avec de nouvelles valeurs de chaîne de requête. Elle expose également l’ID de session dans la chaîne de requête, où elle peut être utilisé dans une attaque de sécurité. Vous devez utiliser le mode sans cookie uniquement si vous devez prendre en charge des clients qui n’ont pas de support pour les cookies. |
CookieName |
Valeur en lecture/écriture string qui spécifie le nom du cookie HTTP à utiliser pour l’identification de session. La valeur par défaut est « ASP.NET_SessionId ». |
CustomProvider |
Valeur en lecture/écriture string qui spécifie le nom d’un fournisseur personnalisé à partir de la propriété Providers utilisée lorsque la propriété Mode est définie sur Custom . |
Location |
(Hérité de ConfigurationSection .) Une propriété clé. |
Mode |
Valeur en lecture/écriture sint32 qui spécifie où stocker l’état de session. Les valeurs possibles sont répertoriées plus loin dans la section Remarques. Remarque : La propriété Mode n’est pas obligatoire et peut être héritée d’un niveau supérieur dans la hiérarchie de configuration ou de la valeur par défaut. Toutefois, le gestionnaire de configuration écrit toujours le mode en fonction de la valeur héritée actuelle de la section. |
PartitionResolverType |
Valeur en lecture/écriture string qui contient le nom complet du type de programme de résolution qui partitionne les données d’état de session sur plusieurs nœuds principaux lorsque la propriété Mode est définie sur SQLServer ou sur StateServer . Remarque : Si cette propriété est spécifiée, les propriétés SqlConnectionString et StateConnectionString sont ignorées. La chaîne de connexion retournée par PartitionResolverType sera utilisée sur 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 levée lorsque la chaîne de connexion configurée au serveur n’est pas valide. |
Path |
(Hérité de ConfigurationSection .) Une propriété clé. |
Providers |
Valeur ProviderSettings qui contient le nom et le type de fournisseurs qui effectuent des services liés à l’état de session. |
RegenerateExpiredSessionId |
Une valeur boolean en lecture/écriture. true si l’ID de session est régénéré lorsqu’un ID de session expiré est spécifié par le client ; sinon, false . Par défaut, il s’agit de false . Remarque : Par défaut, seules les URL sans cookie sont rééditées lorsque cette propriété est activée. |
SectionInformation |
(Hérité de ConfigurationSection .) |
SessionIDManagerType |
Valeur en lecture/écriture string qui spécifie le type qualifié complet du gestionnaire d’ID de session. |
SqlCommandTimeout |
Valeur en lecture/écriture datetime qui spécifie le délai d’attente pour les commandes SQL qui utilisent le mode d’état de session SQL Server. La valeur par défaut est 30 secondes. |
SqlConnectionString |
Valeur en lecture/écriture string qui contient la chaîne de connexion à un serveur SQL Server. La valeur par défaut est « data source=localhost ; Integrated Security=SSPI ». Cette propriété est requise lorsque la propriété Mode est définie sur SQLServer . |
StateConnectionString |
Valeur en lecture/écriture string qui spécifie le nom et le port du serveur lorsque l’état de session est stocké à distance. La valeur par défaut est « tcpip=loopback :42424 ». Cette propriété est requise lorsque la propriété Mode est définie sur StateServer . Remarque : vérifiez que le service d’état ASP.NET s’exécute sur le serveur distant qui stocke les informations d’état de session. Ce service est installé avec ASP.NET et se trouve par défaut sur [drive :]\WINDOWS\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. Par défaut, ce service est configuré pour le démarrage manuel. Vous devez modifier le comportement de démarrage sur Automatique. |
StateNetworkTimeout |
Valeur en lecture/écriture datetime qui spécifie l’heure, en secondes, que la connexion réseau entre le serveur Web et le serveur d’état peut rester inactive avant l’abandon de la session. Cette propriété est requise lorsque la propriété Mode est définie sur StateServer . La valeur par défaut est 10 secondes. |
Timeout |
Valeur de lecture/écriture datetime qui spécifie l’heure, en minutes, après laquelle la session expire en raison de l’inactivité. La valeur par défaut est 20 minutes. Remarque : Vous ne pouvez pas définir la propriété Timeout sur une valeur supérieure à 525 601 minutes (1 an). |
UseHostingIdentity |
Une valeur boolean en lecture/écriture. true si l’authentification Windows et l’identité du processus hôte (ASP.NET ou une identité de service Windows) sont activées pour les connexions à distance ; false si l’état de session utilise l’emprunt d’identité du client lorsqu’il est disponible. Par défaut, il s’agit de true . Remarque : ce paramètre simplifie la gestion de l’authentification Windows intégrée en accordant l’accès à la base de données uniquement au processus de travail ou à l’identité d’application ASP.NET et non à l’ensemble du domaine ou à un ensemble d’utilisateurs de domaine. |
Sous-classes
Cette classe ne contient aucune sous-classe.
Notes
Lorsqu’un nouveau client commence à interagir avec une application web, un ID de session est émis et associé à toutes les demandes suivantes du même client pendant la durée de validité de la session. Cet ID est utilisé pour maintenir l’état côté serveur associé à la session cliente entre les requêtes. La SessionStateSection
classe contrôle la façon dont l’application ASP.NET établit et gère cette association pour le compte de chaque client.
Le tableau suivant répertorie les valeurs possibles pour la propriété Cookieless
. La valeur par défaut est 1 (UseCookies
).
Valeur | Mot clé | Description |
---|---|---|
0 | UseUri |
L’ID de session est incorporé sous forme de chaîne de requête dans la requête URI (Uniform Resource Identifier) et l’URI est redirigé vers l’URL demandée à l’origine. La demande d’URI modifiée est utilisée pendant la durée de la session. Aucun cookie n’est donc nécessaire. Remarque : Lorsque vous utilisez le mode UseUri , vous devez définir la propriété RegenerateExpiredSessionId sur true . Cela permet à un serveur web d'expirer et de regénérer les jetons. Ainsi, un agresseur potentiel dispose de moins de temps pour capturer un cookie et accéder au contenu du serveur web. Vous devez également envisager de modifier la propriété Timeout en moins de la valeur par défaut de 20 minutes. |
1 | UseCookies |
L’ID de session est stocké dans un cookie HTTP sur le client pendant la durée de la connexion d’un utilisateur à un site Web. Les cookies sont transmis dans les en-têtes HTTP de toutes les requêtes entre un client et un serveur web et sont plus efficaces dans le suivi de l’état de session, car ils ne nécessitent pas de redirection. En outre, ils conservent l’état si un utilisateur quitte un site pour visiter un autre, puis retourne au site d’origine. Remarque : envisagez de modifier la propriété Timeout en moins de la valeur par défaut de 20 minutes afin qu’un attaquant potentiel ait moins de temps pour capturer un cookie et accéder au contenu du site web. |
2 | AutoDetect |
L’ID de session est stocké dans un cookie HTTP sur le client uniquement après qu’un établissement d'une liaison avec le navigateur vérifie qu’un cookie peut être stocké. Remarque : Lorsque vous utilisez le mode AutoDetect , vous devez définir la propriété RegenerateExpiredSessionId sur true . Cela permet à un serveur web d'expirer et de regénérer les jetons. Ainsi, un agresseur potentiel dispose de moins de temps pour capturer un cookie et accéder au contenu du serveur web. Vous devez également envisager de modifier la propriété Timeout en moins de la valeur par défaut de 20 minutes. |
3 | UseDeviceProfile |
L’ID de session est stocké dans un cookie HTTP sur le client si le profil d’appareil client prend en charge les cookies ; sinon, aucun cookie n’est utilisé. Si le profil d’appareil prend en charge les cookies, ils sont utilisés même si l’utilisateur a désactivé la prise en charge des cookies. Utilisez ce paramètre pour vous assurer que les ID sans cookie seront utilisés uniquement avec les clients qui en ont besoin (par exemple, les navigateurs mobiles). Remarque : Lorsque vous utilisez le modeUseDeviceProfile , vous devez définir la propriété RegenerateExpiredSessionId sur true . Cela permet à un serveur web d'expirer et de regénérer les jetons. Ainsi, un agresseur potentiel dispose de moins de temps pour capturer un cookie et accéder au contenu du serveur web. Vous devez également envisager de modifier la propriété Timeout en moins de la valeur par défaut de 20 minutes. |
Le tableau suivant répertorie les valeurs possibles pour la propriété Mode
. La valeur par défaut est 1 (InProc
).
Valeur | Mot clé | Description |
---|---|---|
0 | Off |
L’état de session est désactivé. |
1 | InProc |
L’état de session est stocké pour une application ASP.NET dans le processus de travail où l’application s’exécute. L’état de session in-process est le mode de stockage intégré le plus rapide. Toutefois, à mesure que vous stockez des données dans une session, vous consommez davantage de mémoire, ce qui peut ralentir les performances du serveur. Si le processus de travail est recyclé, toutes les données d'état de session sont perdues. Si vos applications ASP.NET doivent conserver les données d’état de session et que la vitesse d’accès aux données n’est pas une préoccupation principale, envisagez d’utiliser un mode d’état de session hors processus pour stocker les données. L’état de session in-process ne peut pas être utilisé dans une batterie de serveurs Web sans schéma d’affinité d’ID de session qui garantit que toutes les requêtes avec un ID de session donné sont dirigées vers le même serveur web. Remarque : Le service d'état ASP.NET (Aspnet_state.exe) doit être en cours d'exécution pour que l'état de session in-process prenne effet. Ce service est installé avec ASP.NET et se trouve par défaut sur [drive :]\WINDOWS\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. Par défaut, ce service est configuré pour le démarrage manuel. Vous devez modifier le comportement de démarrage sur Automatique. |
2 | StateServer |
L’état de session utilise le service d’état hors processus ASP.NET pour stocker les informations d’état. L’avantage de cette configuration est que l’état de session est conservé lorsque le processus de travail de l’application se recycle. Si vous utilisez ce paramètre, vous devez spécifier une chaîne de connexion dans la propriété StateConnectionString . |
3 | SQLServer |
L’état de session utilise une base de données SQL Server hors processus pour stocker les informations d’état. L'avantage de cette configuration est que l'état de session est conservé en dépit du recyclage du processus de travail de l'application, ou si le service d'état de ASP.NET ou le serveur web tombe en panne. Si vous utilisez ce paramètre, vous devez spécifier une chaîne de connexion dans la propriété SqlConnectionString . Remarque : Pour utiliser le SQLServe mode d’état de session r, vous devez exécuter le script SQL InstallSqlState.sql (installé dans [lecteur :]\WINDOWS\Microsoft.NET\Framework\VersionNumber dans le cadre de l’installation par défaut du .NET Framework) sur l’ordinateur exécutant SQL Server qui stockera l’état de la session. Cela crée une base de données appelée ASPState avec de nouvelles procédures stockées et crée de nouvelles tables ASPStateTempApplications et ASPStateTempSessions dans la base de données TempDB. |
4 | Custom |
L’état de session utilise un magasin de données personnalisé pour stocker les informations d’état de session. Si vous utilisez ce paramètre, vous devez spécifier le nom du fournisseur personnalisé dans la propriété CustomProvider . |
Hiérarchie d'héritage
ConfigurationSectionWithCollection
SessionStateSection
Spécifications
Type | Description |
---|---|
Client | - IIS 7.0 sur Windows Vista - IIS 7.5 sous Windows 7 - IIS 8.0 sous Windows 8 - IIS 10.0 sous Windows 10 |
Serveur | - IIS 7.0 sur Windows Server 2008 - IIS 7.5 sur Windows Server 2008 R2 - IIS 8.0 sur Windows Server 2012 - IIS 8.5 sur Windows Server 2012 R2 - IIS 10.0 sous Windows Server 2016 |
Produit | - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 |
Fichier MOF | WebAdministration.mof |
Voir aussi
System.Web.Configuration.SystemWebSectionGroup.SessionState
System.Web.SessionState.SessionStateModeClasse ConfigurationSectionWithCollection
Classe ProviderSettings
Gestion rapide, évolutive et sécurisée de l’état de session pour vos applications web