Un objet de session stocke des informations sur, ou modifier les paramètres pour une session utilisateur.
L'objet de la session
Lorsque vous travaillez avec une application sur votre ordinateur, vous l'ouvrez, faites quelques modifications, puis vous le fermez. Cela ressemble beaucoup à une session. L'ordinateur sait qui vous êtes. Il sait quand vous ouvrez l'application et lorsque vous le fermez. Cependant, sur Internet il y a un problème: le serveur web ne sait pas qui vous êtes et ce que vous faites, parce que l'adresse HTTP ne maintient pas l'état.
ASP résout ce problème en créant un cookie unique pour chaque utilisateur. Le cookie est envoyé à l'ordinateur de l'utilisateur et il contient des informations qui identifie l'utilisateur. Cette interface est appelée l'objet Session.
L'objet de session stocke des informations sur, ou modifier les paramètres pour une session utilisateur.
Les variables stockées dans une information de maintien de l'objet de la session au sujet d'un utilisateur unique, et sont disponibles pour toutes les pages dans une seule application. Informations communes stockées dans des variables de session sont le nom, id et préférences. Le serveur crée un nouvel objet de session pour chaque nouvel utilisateur, et détruit l'objet de la session lorsque la session expire.
Quand est-ce une session de démarrage?
Une session commence lorsque:
- Une nouvelle utilisateur demande un fichier ASP et le fichier Global.asa comprend une procédure Session_OnStart
- Une valeur est enregistrée dans une variable de session
- Un utilisateur demande un fichier ASP et le fichier Global.asa utilise le <object> balise pour instancier un objet avec une portée de session
Quand une fin de session?
Une session se termine si un utilisateur n'a pas demandé ou actualisé une page dans l'application pour une période déterminée. Par défaut, c'est à 20 minutes.
Si vous souhaitez définir un intervalle de délai d' attente qui est plus court ou plus long que la valeur par défaut, utilisez le Timeout d' Timeout propriété.
L'exemple ci-dessous un intervalle de délai d'attente de 5 minutes:
<%
Session.Timeout=5
%>
Utilisez la Abandon méthode pour mettre fin à une session immédiatement:
<%
Session.Abandon
%>
Note: Le principal problème avec les sessions est quand ils doivent se terminer. Nous ne savons pas si la dernière demande de l'utilisateur a été celui ou pas définitif. Nous ne savons pas combien de temps nous devons garder la session "alive" en "alive" . Attendre trop longtemps pour une session inactive utilise des ressources sur le serveur, mais si la session est supprimée trop tôt l'utilisateur doit tout recommencer parce que le serveur a supprimé toutes les informations. Trouver l'intervalle de temporisation droit peut être difficile!
Tip: Ne stocker que de petites quantités de données dans les variables de session!
Stocker et récupérer des variables de session
La chose la plus importante à propos de l'objet Session est que vous pouvez stocker des variables en elle.
L'exemple ci - dessous définira la variable de session username d' "Donald Duck" age "50" username à "Donald Duck" et la variable de session age à "50" :
<%
Session("username")="Donald Duck"
Session("age")=50
%>
Lorsque la valeur est stockée dans une variable de session, il est accessible depuis toutes les pages dans l'application ASP:
Welcome <%Response.Write(Session("username"))%>
La ligne ci - dessus retours: "Welcome Donald Duck" .
Vous pouvez également enregistrer les préférences utilisateur dans l'objet de session et d'accéder ensuite que la préférence de choisir quelle page pour revenir à l'utilisateur.
L'exemple ci-dessous indique une version texte seulement de la page si l'utilisateur dispose d'une faible résolution d'écran:
<%If Session("screenres")="low" Then%>
This is the text version of the page
<%Else%>
This is the multimedia version of the page
<%End If%>
Retirer des variables de session
La collection Contents contient toutes les variables de session.
Il est possible de supprimer une variable de session avec la méthode Remove.
L'exemple ci - dessous supprime la variable session de "sale" si la valeur de la variable de session "age" est inférieure à 18:
<%
If Session.Contents("age")<18 then
Session.Contents.Remove("sale")
End If
%>
Pour supprimer toutes les variables dans une session, utilisez la méthode RemoveAll:
<%
Session.Contents.RemoveAll()
%>
Boucle à travers la collection Contents
La collection Contents contient toutes les variables de session. Vous pouvez parcourir la collection Contents, pour voir ce qui est stocké dans ce:
<%
Session("username")="Donald Duck"
Session("age")=50
dim i
For Each i in Session.Contents
Response.Write(i & "<br>")
Next
%>
Résultat:
username
age
Si vous ne connaissez pas le nombre d'éléments dans la collection Contents, vous pouvez utiliser la propriété Count:
<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
Response.Write(Session.Contents(i) & "<br>")
Next
%>
Résultat:
Session variables: 2
Donald Duck
50
Boucle à travers la collection StaticObjects
Vous pouvez parcourir la collection StaticObjects, pour voir les valeurs de tous les objets stockés dans l'objet Session:
<%
dim i
For Each i in Session.StaticObjects
Response.Write(i & "<br>")
Next
%>