Lien entre une Session et son Client ?

Signaler
Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
8 mars 2007
-
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013
-
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

Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

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
Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
8 mars 2007

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 >:)
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

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