Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

ASP - L'objet Session

ASP - L'objet Session Encyclopédie


Introduction aux sessions

Le protocole HTTP est un protocole non connecté (on parle aussi de protocole sans états, en anglais stateless protocol), cela signifie que chaque requête sur une page web est traitée indépendamment des autres et qu'aucun mécanisme n'est prévu à la base pour pouvoir exploiter l'historique des différentes requêtes sur les pages successives. Ainsi le serveur web ne peut pas se « souvenir » de la requête précédente, ce qui empêche des utilisations telles que le commerce électronique, pour lequel une mémorisation des achats de l'utilisateur à travers les différentes pages est nécessaire.

Il est donc nécessaire de trouver un moyen de maintenir une certaine cohésion entre l'utilisateur et la requête, notamment :

  • reconnaître les requêtes provenant du même utilisateur,
  • associer un profil à l'utilisateur,
  • connaître les paramètres de l'application pour l'utilisateur (nombre de produits vendus, ...).

Ce mécanisme de gestion des états est appelé gestion de session (en anglais session tracking).

Présentation de l'objet Session

Le rôle de l'objet Session est ainsi de permettre de stocker temporairement (pendant toute la durée de vie de la session) des informations transmissibles de page en page. Le mécanisme utilisé par l'objet Session pour permettre de transmettre les informations est basée sur l'utilisation de cookies, mais il est réalisé de manière transparente, ce qui signifie que l'utilisateur n'a pas à s'en soucier. L'utilisation de l'objet Session est très simple, elle consiste uniquement à enregistrer une variable dans la session, à la récupérer tout aussi simplement. L'objet Session fournit également les mécanismes permettant de détruire les données de la session.

Les constituants de l'objet Session

L'objet Session possède plusieurs collections, propriétés et méthodes :

Collections Propriétés Méthodes
Contents Contents.count Contents.Remove()
StaticObjects Contents.item(nom) Contents.RemoveAll()
  StaticObjects.count Abandon
  StaticObjects.item(nom)  
  Codepage  
  LCID  
  SessionID  
  Timeout  

L'objet Session peut ainsi être vu comme un conteneur regroupant des données dynamiques rendues accessibles pour un visiteur, tout au long de sa navigation sur le site. L'objet Session regroupe ainsi en quelque sorte l'ensemble des variables globales de l'utilisateur.

Les événements OnStart et OnEnd

L'objet Session propose deux événements, OnStart() et OnEnd(), permettant respectivement d'exécuter des actions au démarrage et à l'arrêt de la session, c'est-à-dire au début de la navigation (ou plus exactement à l'ouverture de la session) ou lorsque l'utilisateur quitte le site (ou plus exactement ferme sa session).

La collection Contents

La collection Contents contient des variables dynamiques créées sur le serveur pour un utilisateur. Il s'agit d'une fonctionnalité très utile permettant par exemple de mettre en place très facilement un panier de courses ou des préférences !

La création d'une valeur dans la collection Contents se fait de la manière suivante :

Session.Contents("nom_variable") = variable

Il existe toutefois une notation équivalente, moins lourde :

Session("nom_variable") = variable

A l'inverse, l'utilisation d'une valeur stockée dans la session se fait en appelant Session("nom_variable"), par exemple comme suit :

Bienvenue <%Response.Write(Session("nom"))%>

La collection Contents contient elle-même deux propriétés et deux méthodes. Les propriétés de la collection Contents sont les suivantes :

  • Contents.count, représentant le nombre d'objets dans la collection ;
  • Contents.item(nom), représentant l'objet identifié par le nom passé entre parenthèses.

Les méthodes de la collection Contents sont les suivantes :

  • Contents.remove(nom), supprime l'objet identifié par le nom passé en argument ;
  • Contents.removeall(), supprime tous les objets de la collection.

Le code suivant permet d'afficher l'ensemble des variables contenues dans la session, ainsi que leurs valeurs :

<%
dim i
For Each i in Session.Contents
  Response.Write("
" & i & " : " & Session(i)) Next %>

La collection StaticObjects

La collection StaticObjects permet de manipuler les données contenues dans les balises HTML <OBJECT> et dont l'attribut scope vaut « application ».

La collection StaticObjects contient elle-même deux propriétés et deux méthodes. Les propriétés de la collection StaticObjects sont les suivantes :

  • StaticObjects.count, représentant le nombre d'objets dans la collection ;
  • StaticObjects.item(nom), représentant l'objet identifié par le nom passé entre parenthèses.

Les méthodes de la collection StaticObjects sont les suivantes :

  • StaticObjects.remove(nom), supprime l'objet identifié par le nom passé en argument ;
  • StaticObjects.removeall(), supprime tous les objets de la collection.

La méthode Abandon()

La méthode Abandon permet d'abandonner la session, c'est-à-dire de supprimer l'ensemble des données qui y sont stockées.

La propriété Timeout

La propriété Timeout permet de modifier la valeur (en minutes) de la durée de la session (par défaut 20 minutes) :

Session.Timeout = nombre_minutes

Plus d'information

Trucs & astuces pertinents trouvés dans la base de connaissances

01/02 10h14 Verrouiller la session Windows XP (Windows XP)
25/01 14h12 Ouverture de session : se loguer automatiquement (Windows XP)
07/12 16h49 Outils pour sécuriser Windows XP (et autres) (Sécurité)
04/09 12h09 Mot de passe de session perdu ou oublié (Windows)
09/11 00h48 Fermeture de session - Se délogger rapidement (Bash)
ASP Session Plus d'astuces sur « ASP Session »

Discussions pertinentes trouvées dans le forum

02/03 14h11 asp session ASP session Développement 02/03 14h58->marlene7
27/01 16h36 asp. objet application session ASP. L'objet Application et Session Développement 29/01 11h00->moha_islam6
01/03 15h21 asp session ASP- session Développement 01/03 16h20->Canard0073
02/08 17h05 asp objet session ASP : Objet Session Développement 03/08 09h23->Meg2
24/05 14h44 asp session asp/session Windows 24/05 19h08->br@scoo1
20/09 18h16 session asp signifie Session en asp signifie??? Développement 21/09 14h26->Bobinours1
30/07 10h37 asp session cadre ASP: session et cadre Développement 30/07 14h47->gaillardps1
01/10 11h48 variable session asp fonction javascript Variable session asp et fonction javascript Windows 13/10 20h38->Bino1
28/09 20h07 utilisation objet session asp utilisation de l'objet session en ASP Développement 30/09 10h43->fred1
21/08 22h24 asp variables session iis 5.0 [ASP] Variables de session - IIS 5.0 Développement 20/09 21h05->Bruno1
Discussion fermée Problème résolu ASP Session Plus de discussions sur « ASP Session »

Ce document intitulé « ASP - L'objet Session » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.