Séance ASP



L'objet Session est utilisé pour stocker des informations sur la session utilisateur (session), ou pour modifier les paramètres de la session utilisateur (session).


Objet Session

Lorsque vous travaillez sur une application sur votre ordinateur, vous l'ouvrez, apportez des modifications, puis la fermez. Cela ressemble beaucoup à une conversation. L'ordinateur sait qui vous êtes. Il sait quand vous ouvrez et fermez des applications. Cependant, sur Internet, un problème se pose : comme les adresses HTTP ne peuvent pas conserver leur état, le serveur Web n'a aucune idée de qui vous êtes et de ce que vous faites.

ASP résout ce problème en créant un cookie unique pour chaque utilisateur. Un cookie est transféré sur l'ordinateur de l'utilisateur et contient des informations permettant d'identifier l'utilisateur. Cette interface est appelée un objet Session.

L'objet Session est utilisé pour stocker des informations sur la session utilisateur (session) ou pour modifier les paramètres de la session utilisateur (session).

Les variables stockées dans les informations du magasin d'objets de session pour un seul utilisateur et sont disponibles pour toutes les pages de l'application. Les informations communes stockées dans les variables de session sont généralement le nom, l'identifiant et les paramètres. Le serveur créera une nouvelle session pour chaque nouvel utilisateur et révoquera l'objet Session à l'expiration de la session.


Quand commence la Session ?

La session commence par :

  • Un nouvel utilisateur demande un fichier ASP et le fichier Global.asa fait référence au sous-programme Session_OnStart

  • Une valeur est stockée dans la variable Session

  • Un utilisateur demande un fichier ASP et Global.asa est instancié via la portée de la session à l'aide de la balise <object> d'un certain objet


fin ?

Si l'utilisateur ne demande pas ou n'actualise pas la page dans l'application dans le délai spécifié, la session prendra fin. La valeur par défaut est de 20 minutes.

Si vous souhaitez définir l'intervalle de délai d'expiration pour qu'il soit plus court ou plus long que la valeur par défaut, vous pouvez utiliser l'attribut Timeout.

L'exemple suivant définit un intervalle de délai d'expiration de 5 minutes :

<%
Session.Timeout=5
%>

Pour terminer immédiatement la session, utilisez la méthode Abandon :

<%
Session.Abandon
%>

Remarque : Le principal problème lors de l'utilisation des sessions est de savoir quand elles doivent se terminer. Nous ne saurons pas si la demande la plus récente de l'utilisateur était la dernière demande. Nous ne savons donc pas combien de temps nous devons laisser "vivre" la session. Attendre trop longtemps une session inactive peut épuiser les ressources du serveur. Cependant, si la session est supprimée prématurément, l'utilisateur devra recommencer encore et encore car le serveur a supprimé toutes les informations. Trouver le bon intervalle de temps mort peut être difficile !

lamp.gifAstuce : Ne stockez qu'une petite quantité de données dans la variable de session !


Stockage et récupération des variables de session

Le plus grand avantage de l'objet Session est que des variables peuvent y être stockées pour une lecture ultérieure de pages Web, et sa gamme d'applications est très large.

L'exemple suivant attribue "Donald Duck" à la variable de session nommée nom d'utilisateur et attribue "50" à la variable de session nommée age :

<%
Session("username")="Donald Duck"
Session("age")=50
%>

Lorsque la valeur est stocké dans la variable de session, il peut être utilisé par n'importe quelle page de l'application ASP :

Welcome <%Response.Write(Session("username"))%> 🎜>
Le résultat renvoyé par la ligne de code ci-dessus est : "Bienvenue Donald Duck".

Vous pouvez également stocker les paramètres utilisateur dans l'objet Session, puis accéder à ces paramètres pour décider quelle page renvoyer à l'utilisateur.

L'exemple suivant précise que si l'utilisateur utilise une faible résolution d'écran, une version texte uniquement de la page est renvoyée :

<%If Session("screenres") ="low" Then%>
Ceci est la version texte de la page
<%Else%>
Ceci est la version multimédia de la page
<%End If%> ;


Supprimer les variables de session

La collection Contents contient toutes les variables de session.

Les variables de session peuvent être supprimées via la méthode Remove.

Dans l'exemple suivant, si la valeur de la variable de session « âge » est inférieure à 18, la variable de session « vente » est supprimée :

<%
Si Session. Contents("age")<18 alors
Session.Contents.Remove("sale")
Fin si
%>

Si vous en avez besoin supprimez le Pour toutes les variables, veuillez utiliser la méthode RemoveAll :

<%
Session.Contents.RemoveAll()
%>



Parcourir la collection Contents

La collection Contents contient toutes les variables de session. Vous pouvez afficher les variables stockées dans la collection Contents en parcourant celle-ci :

<%
Session("username")="Donald Duck"
Session("age") = 50

dim i
Pour chaque i dans Session.Contents
Response.Write(i & "<br>")
Suivant
%>

Résultat :

nom d'utilisateur
âge

Si vous ne connaissez pas le nombre d'éléments dans la collection Contenu, vous pouvez utiliser le Compte propriété :

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Variables de session : " & j)
Pour i=1 à j
Response.Write(Session.Contents(i) & "<br>")
Suivant
%>

Résultat :

Variables de session : 2
Donald Duck
50


Parcours de la collection StaticObjects

Vous pouvez visualiser le stockage en parcourant la collection StaticObjects Les valeurs de tous les objets dans l'objet Session :

<%
dim i
For Each i in Session.StaticObjects
Response .Write(i & "<br> ;")
Suivant
%>