Lien entre une Session et son Client ?

cs_phoenyx Messages postés 31 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 8 mars 2007 - 24 juin 2003 à 12:57
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013 - 24 juin 2003 à 14:57
Boujour à tous,

j'aimerais savoir comment marche les variables de session.
comment le serveur sait que ces variables de session sont à tel client plutot qu'à un autre ?
- Le SessionId est-il stocké chez le client ? Comment ?
- Le serveur stocke-t-il des informations sur le client pour faire le lien avec sa session ? Quelles sont ces informations ?

Merci d'avance

>:) PhoenyX >:)

3 réponses

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
24 juin 2003 à 13:27
Une session commence lorsqu'un utilisateur se connecte à ton application, il existe 2 events de session user et 2 applicative qui te permettent de gérer les sessions.

Session_OnStart S'exécute la première fois qu'un utilisateur utilise une page de votre application

Session_OnEnd S'exécute en cas de dépassement du délai de la session d'un utilisateur ou quand celui-ci quitte votre application

Application_OnStart S'exécute une fois lorsque la première page de votre application est utilisée pour la première fois par un utilisateur

Application_OnEnd S'exécute une fois lors de l'arrêt du serveur Web

Ces events doivent être déclaré dans le fichier Global.asa qui doit se trouver à la racine de ton application.

ptit exemple : j'initialise la variable de session de l'utilisateur, ensuite dans chacune de mes pages je fait un test sur l'état de cette variable, si elle vaut 0 c'est que l'utilisateur vient de se connecter, dans ce cas je le redirige vers une page de loggin afin de s'identifier.

Sub Session_OnStart
'initialisation de User_ID
session("User_ID") = 0
End Sub

Sub Session_OnEnd
'Cloture de la session
session("User_ID") = 0
End Sub

Les variables de session restent propre à chaque utilisateur, attention de ne pas trop en abuser car cela prend de la mémoire serveur, le mieux c'est de garder certaines valeurs de base (user_id...) et de stocker le reste dans une table de ta db.

En espérant avoir répondu à tes question :o)

Bàt

Nickadele
0
cs_phoenyx Messages postés 31 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 8 mars 2007
24 juin 2003 à 14:00
Merci, mais c'était pas ma question, j'ai dû mal m'exprimer.

Je reformule.
Lorsqu'un client se connecte, le serveur lui ouvre une session.
Lors des requêtes suivantes passées par le client au serveur, comment le serveur sait-il à quel client appartient telle session. Il y a bien un lien entre une session et le client auxquel elle appartient.
Je voudrais donc savoir quelle est la nature de ce lien, comment le serveur gère-t-il les sessions ?
- Est-ce le serveur qui garde des infos sur le client pour savoir s'il a la session A ou la session B ? Quelles infos alors (adresse physique,...) ?
- Est-ce le client qui dit au serveur dans chaque requête "j'ai la session X" (ou est-ce stocké ? cookie,...) ?

Bref tout (ou presque) savoir sur ce lien

J'espère avoir été plus clair.
C'est plus une question technique que de programmation.

(Re)merci d'avance :big)

>:) PhoenyX >:)
0
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
24 juin 2003 à 14:57
le serveur attribue un id : session.sessionID technique pour chaque session, cet id peut etre utilisé mais avec prudence car en cas de reboot ou de crash serveur un ID peut etre réattribué à une autre session, pour le reste faudrait que je replonge dans ma bibliothèque.

Comme tu le dis c'est technique, il s'agit de parametres passé entre le client et le serveur mais qui reste transparent pour les 2.

Sinon voir doc msdn Session Object

Nickadele
0
Rejoignez-nous