Objet Session ASP

L'objet Session est utilisé pour stocker les informations de l'utilisateur. Les variables stockées dans l'objet Session contiennent des informations uniques pour un utilisateur et sont accessibles à toutes les pages d'une application.

Objet Session

Lorsque vous opérez une application, vous l'ouvrez, effectuez des modifications et puis la fermez. Cela ressemble beaucoup à une conversation (Session). L'ordinateur sait qui vous êtes. Il sait à quel moment vous avez ouvert et fermé l'application. Mais sur l'internet, il y a un problème : en raison de l'adresse HTTP qui ne peut pas conserver l'état, le serveur web ne sait pas qui vous êtes ni ce que vous avez fait.

ASP résout ce problème en créant un cookie unique pour chaque utilisateur. Le cookie est transmis au client et contient des informations identifiables pour l'utilisateur. Cet interface est appelé Objet Session.

L'objet Session est utilisé pour stocker des informations sur l'utilisateur ou pour modifier les paramètres de session d'un utilisateur. Les variables stockées dans l'objet Session contiennent des informations sur un seul utilisateur et sont accessibles à toutes les pages de l'application. Les informations stockées dans l'objet Session sont généralement le nom, l'id et les paramètres. Le serveur crée une nouvelle session pour chaque utilisateur nouveau et annule cette objet de session lorsque la session expire.

Quand la session commence?

La session commence :

  • Lorsqu'un nouveau utilisateur demande un fichier ASP et que le fichier Global.asa appelle la sous-programme Session_OnStart ;
  • Lorsqu'une valeur est stockée dans une variable de session ;
  • Lorsqu'un utilisateur demande un fichier ASP et que Global.asa utilise l'étiquette <object> pour instancier un objet via la portée de session ;

Quand la session se termine?

Si l'utilisateur ne demande pas ou ne rafraîchit pas la page dans l'application dans un délai déterminé, la session se termine. La valeur par défaut est de 20 minutes.

Si vous souhaitez configurer un délai d'expiration plus long ou plus court, vous pouvez le configurer Timeout Propriété.

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

<%
Session.Timeout=5
%>

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

<%
Session.Abandon
%>

Attention :Le principal problème avec l'utilisation de session est de savoir quand elles devraient se terminer. Nous ne savons pas si la dernière demande de l'utilisateur est la dernière demande. Par conséquent, nous ne savons pas pendant combien de temps la session doit "vivre". Attendre trop longtemps pour une session inoccupée épuiserait les ressources du serveur. Cependant, si la session est supprimée trop tôt, l'utilisateur devra commencer à nouveau une et une fois, car le serveur a supprimé toutes les informations. Trouver un intervalle de temps d'expiration approprié est difficile.

Astuce :Si vous utilisez des variables de session, n'y stockez pas de grandes quantités de données.

Stockage et récupération des variables de session

La plus grande force de l'objet Session est qu'il peut y stocker des variables pour être lues par les pages suivantes, et son domaine d'application est très large.

L'exemple suivant assigne "Donald Duck" à la variable de session nommée username, et assigne "50" à la variable de session nommée age :

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

Une fois qu'une valeur est stockée dans la variable de session, elle peut être utilisée par n'importe quelle page de l'application ASP :

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

Le résultat retourné par cette ligne de programme est : "Bienvenue Donald Duck" .

Vous pouvez également sauvegarder les paramètres de l'utilisateur dans l'objet session et décider ce que vous retournez à l'utilisateur en accédant à ces paramètres .

Dans l'exemple suivant, si la résolution d'écran de l'utilisateur est faible, retournez la version texte de la page :

<%Si Session("screenres")="low" Alors%> 
  C'est la version texte de la page
<%Else%> 
  C'est la version multimédia de la page
<%End If%>

Supprimer la variable de session

La collection contents contient toutes les variables de session .

Vous pouvez supprimer les variables de session à l'aide de la méthode remove .

Dans l'exemple suivant, si la valeur de la variable de session "age" est inférieure à 18, supprimez la variable de session "sale" :

<%
Si Session.Contents("age")<18 alors 
  Session.Contents.Remove("sale")
End If 
%>

Pour supprimer toutes les variables de session, utilisez la méthode RemoveAll :

<%
Session.Contents.RemoveAll()
%>

Parcourir la collection contents

La collection contents contient toutes les variables de session. Vous pouvez parcourir la collection contents pour voir les variables stockées :

<%
Session("username")="Donald Duck"
Session("age")=50
dim i
Pour Each i in Session.Contents
  Response.Write(i & "<br />")
Next
%>

Résultat :

username
age

Si vous souhaitez connaître le nombre d'éléments de la collection contents, vous pouvez utiliser l'attribut count :

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

Résultat :

Variables de session : 2
Donald Duck
50

Parcourir la collection StaticObjects

Il est possible de parcourir la collection StaticObjects pour voir les valeurs de tous les objets stockés dans l'objet session :

<%
dim i
Pour Each i in Session.StaticObjects
  Response.Write(i & "<br />")
Next
%>