Session.ID qui change tout le temps - ASP - Programmation
Marsh Posté le 23-07-2003 à 14:45:29
Peut etre un disfonctionnement au niveau de l'objet session. Ou alors cela peut provenir également du domaine du cookie. Je ne vois que ca pour l'instant
Marsh Posté le 23-07-2003 à 14:47:03
regarde passer les trames pour voir si le browser rebvoie bien le cookie session ...
Marsh Posté le 23-07-2003 à 14:59:20
Il me semble que pour suivre un utilisateur l'objet session met en place un cookie sur le pc du dit utilisateur de facon à pouvoir le reconnaitre.
D'un certain coté tu as raison car ce n'est pas toi qui utilise les cookies mais l'objet session. Donc le probleme du tracking peut provenir de là. En fait l'objet session peut ne pas retrouver son cookie auquel cas il croit avoir à faire à un nouvel utilisateur
Marsh Posté le 23-07-2003 à 15:02:57
pour info, voila le principe du Login :
Code :
|
La fonction Check_Login ouvre une base et compare le Login/MDP
Le Pb vien de Session("login" ) = iStatus
Si le n° de session change à chaques fois, l'utilisateur ne pouras jamais recuperer la valeur de Session("login" ) car son n° de session aura "encore" changé...
Marsh Posté le 23-07-2003 à 15:05:04
Lord II a écrit : Il me semble que pour suivre un utilisateur l'objet session met en place un cookie sur le pc du dit utilisateur de facon à pouvoir le reconnaitre. |
nan, l'objet session reste sur le serveur, c'est là l'avantage, pas besoin de stocker des truc chez le client.
Chaque connexion au serveur à sa propre Session.ID et je peut associer à ce Session.ID des variables (le type de login, le Nom de l'utilisateur....).
Normalement, le Session.ID reste fixe pour une connexion. Là, il arrete pas de changer !
Marsh Posté le 23-07-2003 à 15:13:27
dis pas non si tu sais pas comment ca marche !
comment tu crois que le serveur est capable de retouver le bon objet session de l'utilisateur puisque le protocole HTTP est déconncté ?
ca passe par un cookie. Tu n'est pas obligé de le savoir, mais dans ce cas là, ne contredit pas les gens qui essaey de t'aider et qui eux, savent !
Marsh Posté le 23-07-2003 à 15:15:35
snake-bis a écrit : |
Après vérifaction, il s'avère que sans cookies, l'objet session ne fonctionne pas.
Extrait :
Sans cookies, l'objet session ne fonctionne pas |
Marsh Posté le 23-07-2003 à 15:17:00
benou a écrit : |
Merci benou de confirmer ce que j'ai failli mettre en doute
Marsh Posté le 23-07-2003 à 15:18:28
benou a écrit : |
ben y'a aucun Cookie qui passe, securité au Max + Firewall...
Mais je parle peut être pas de la même chose
Marsh Posté le 23-07-2003 à 15:21:59
Bon, pour pas dire de conneries, voici les codes
Login :
Code :
|
Focntion de verif du login :
Code :
|
Fonction d'affichage de l'etat du Login :
Code :
|
Marsh Posté le 23-07-2003 à 15:40:05
snake-bis a écrit : |
ben t'étonne pas que les sessions passent pas non plus ...
(le firewall ne bloque pas les cookies)
Marsh Posté le 23-07-2003 à 15:45:07
benou a écrit : |
ben si justement!
J'ai 2 serveurs, l'un ou les session sont ephemaire et l'autre ou ca marche bien.
Je lance IE 5.0 avec securité max (cookie non accepté).
Je tape l'IP du serveur qui marche, mes pages se chargent, je me log, pas de pb, le Session.ID s'affiche et bouge pas le temps de ma navigation.
Même manip, je tape l'IP du serveur qui déconne, et là le Session.ID change à chaque fois, et je peux donc pas me logger....
Je vais faire des screen pour vous prouver ca.
Je suis pas con, quand vous avez parlé de cookie, j'ai fais le test direct...
Et je le repete, pour ce que je fais, AUCUN cookies ne passent !
Marsh Posté le 23-07-2003 à 15:51:01
snake-bis a écrit : Et je le repete, pour ce que je fais, AUCUN cookies ne passent ! |
Est ce que tu as vérifié ? tu vois passer les requêtes HTTP ?
Pour gérer les sessions, y a 2 solutions :
1) utilsier un cookie pour passer l'identifiant de session
2) faire de l'url-rexriting en passant dans CHAQUE lien de la page l'identifiant de session en paramêtre (je ne suis pas sur que IIS gère ce truc). Ca tu t'en rend facilement compte parcque ca cradifie un max les urls
On pourrait imaginer des mécanisme bizare de IIS pour faire marcher les sessions autrement (genre en utilisant le compte NT), mais je n'ai jamais entendu de trucs pareils.
Donc, jusqu'à preuve du contraire, mon avis est que quand la session marche, c'est que ton browser renvoie le cookie de session.
Installe un truc pour intercepter les trames réseaux et voire les requêtes HTTP... (ou un proxy qui logue les requêtes)
Marsh Posté le 23-07-2003 à 15:51:43
snake-bis a écrit : |
C'est la que c'est louche, car comment veux tu qu'il sache que c'est toi si tu ne t'identifie pas !!
Regarde peut etre un peu dans le dossier ou sont stocké les cookies pour voir si tu n'en a pas des nouveaux
Marsh Posté le 23-07-2003 à 15:58:12
Mon ecran de login sur avec serveur qui marche:
le premier chiffre, c'est le Session.ID
le deuxième, c'est le Session.TimeOut
Je me log sans pb et mes infos de connexion sont gardées
Notez que le Session.ID est toujours le même :
Même chose avec celui qui deconne :
Login accepté mais le Session.ID a cahngé donc je peux pas authentifier l'utilisateur :
je n'ai rien toucher entre les deux....
Marsh Posté le 23-07-2003 à 16:05:10
Lord II a écrit : |
c'est pas gagné : comme les cookies sessions ne sont pas persistants, je crois qu'il les garde qu'en mémoire
Marsh Posté le 23-07-2003 à 16:20:10
Lord II a écrit : |
les cookies ne sont pas les seuls moyens d'identification.
J'utilise la variable Session, j'y stock les infos de login.
Ensuite dans la page je verifie la contenu de cette variable pour verifier les droits . Je fais ca avec des If/Then
Marsh Posté le 23-07-2003 à 16:24:41
snake-bis a écrit : |
MAIS BORDEL !!!!!!!!
puisqu'on te dit que la session a besoin des cookies !!!!!
Marsh Posté le 23-07-2003 à 16:28:31
benou a écrit : |
ben je sais peut être pas de quoi je parle, mais si je bloque les cookies comme dans les screen et que me sessions fonctionne c'est qu'il y a autre chose...
Quand tu dis "c'est pas gagné : comme les cookies sessions ne sont pas persistants, je crois qu'il les garde qu'en mémoire "
tu veux dire que c'est pas les même cookies que ceux utilisés par le forum HFR pour le Login ???
Je suis désolé, mais là je comprends plus
Marsh Posté le 23-07-2003 à 16:35:48
snake-bis a écrit : |
non, c'est pas le même type de cookie, mais c'est des cookies quand même.
y les cookies persistant. C'est les cookies qui ont une date d'expiration et qui seront stockés sur le disque de façon à ce que si l'utilisateur retourne sur le site plus tard, le navigateur web renvoie automatiquement les cookies.
les cookies non persistant c'est pareil sauf qu'ils sont valable que pendant la durée de vie du browser : lorsque le browser est fermé, les cookies sont effacés => habiuellement il sont stockés en mémoire et pas sur le disque.
Les cookies de sessions sont non persistant : quand tu ferme ton browser, les cookies sont "oubliés" et si tu retourne sur le site ca ouvre une nouvelle session : le browser te réaffecte un nouveau cookie avec le nouvel identifiant de session
Marsh Posté le 23-07-2003 à 16:42:32
benou a écrit : |
Mea-culpa alors
maintenant je sais de koi tu parle
ok, donc le pb serait que mon serveur envois pas ces cookies ?
Marsh Posté le 23-07-2003 à 17:19:45
snake-bis a écrit : ok, donc le pb serait que mon serveur envois pas ces cookies ? |
ben à priori, soit le serveur les envoie pas, soit c'est ton browser qui les renvoie pas ...
Marsh Posté le 23-07-2003 à 17:26:54
benou a écrit : |
ok, le browser doit les renvoyé vu que ca marche sur l'aut serveur...
Donc selon toi, le pb viendrait d'un manque d'échange entre le serveur et le client..et pas d'une mauvaise config du serveur ?
je vais mettre un analyser de protocole comme tu l'as dit plus haut et regarder ça....
Merci bcp pour ta patience
Marsh Posté le 24-07-2003 à 09:30:57
Bon,
j'ai fais un test au cas ou. Sur le erveur qui déconne, en utilisant la loopback, tout fonctionne bien, le pb viens donc d'entre le serveur et les clients...
Pensez-vous qu'un switch merdique puisse provoquer cela ? En effet, j'emets certains doutes sur un switch depuis quelque temps
Marsh Posté le 24-07-2003 à 10:56:35
benou a écrit : |
ok, je suis en train de faire une analyse rapide des trames qui passent entre mon poste et les serveurs...
Marsh Posté le 24-07-2003 à 11:11:50
Bon, le cookie de session, il se trouve à quel niveau ?
J'ai une info :
Client -> Serveur OK
Code :
|
et dans l'aute :
Client -> Serveur NOK
Code :
|
Avec le serveur qui pose pb, y'a pas la ligne Cookie
Marsh Posté le 24-07-2003 à 11:13:28
C'est donc de là que provient le probleme, il ne transmet pas el cookie.
Surement un probleme de configuration quelque part sur le serveur. peut etre meme un disfonctionnement de l'objet session !!
Marsh Posté le 24-07-2003 à 11:16:23
Après, dans la trame suivante,
j'ai ca avec le serveur qui marche pas :
Serveur NOK -> Client
Code :
|
Avec le serveur qui marche :
Server OK -> Client
Code :
|
et c'est tout
Marsh Posté le 24-07-2003 à 11:23:13
Lord II a écrit : C'est donc de là que provient le probleme, il ne transmet pas el cookie. |
Ca doit pas etre un pb de l'objet session puis que en navigant en local sur le serveur avec la loopback y'a pas de pb
là je sais plus c'est couillu quand même
P.S. : excuses moi d'avoir douter de tes connaissance au niveau du cookie
Marsh Posté le 24-07-2003 à 11:24:45
snake-bis a écrit : et c'est tout |
mais nan, t'as pas toute les reqûetes là ...
Marsh Posté le 24-07-2003 à 11:59:15
Serveur NOK -> Client
Code :
|
Avec le serveur qui marche :
Server OK -> Client
Code :
|
ensuite y'a ecrit "l'objet a changer d'emplacement...." (je fait un redirect sur la page donc ca me parait normal)
Marsh Posté le 24-07-2003 à 13:20:23
dans les 2 cas, il te manque le début de la réponse ...
Marsh Posté le 24-07-2003 à 13:34:40
benou a écrit : dans les 2 cas, il te manque le début de la réponse ... |
la réponse du serveur ?
Marsh Posté le 24-07-2003 à 14:11:59
donc, j'ai fait 2 requetes à chaques fois :
1ere Requete (Client->Serveur nok):
Code :
|
1ere réponse (serveur nok-> client)
Code :
|
2eme Requete (Client->Serveur nok):
Code :
|
2eme réponse (serveur nok-> client)
Code :
|
1ere Requete (Client->Serveur ok):
Code :
|
1ere réponse (serveur ok-> client)
Code :
|
2eme Requete (Client->Serveur ok):
Code :
|
2eme réponse (serveur ok-> client)
Code :
|
y'a-t-il un ACK du client pour le Set-Cookie? Je l'ai pas trouvé... je remarque que le serveur demande à chaque connexion un set-cookie
On dirait que le serveur nok ne recoit pas l'info ...
Marsh Posté le 24-07-2003 à 14:29:01
ben moi ce que je vois dans tout ton truc, c'est que c'est le client qui ne renvoie pas le cookie du serveur NOK (2eme Requete Client->Serveur nok)
mais bon, encore une fois, t'as copier la requête du client en entier ... mais on vois les parties intéressante.
conculsion : ca vient d'une mauvaise config de ton browser web
Marsh Posté le 24-07-2003 à 14:30:27
benou > Le probleme c'est que j'ai l'impression que le browser web est le meme dans les deux cas donc ca devrait marcher à chaque fois ce qui n'est pas le cas.
snake-bis > Ne pourrais tu pas garder uniquement le serveur qui marche ??
Marsh Posté le 24-07-2003 à 14:31:41
benou a écrit : ben moi ce que je vois dans tout ton truc, c'est que c'est le client qui ne renvoie pas le cookie du serveur NOK (2eme Requete Client->Serveur nok) |
je vais essayer avec un autre poste....
Marsh Posté le 23-07-2003 à 13:49:59
Bonjour,
j'ai un petit souci sur un de mes serveur WEB, la Session.ID change à chaques consultation de page web.
Dès que je click sur un lien, le session.ID change, donc impossible de faire de la gestion d'utilisateur.
Pour tester, j'ai installer 2 serveurs qui utilisent un répertoire partagé ou sont les pages.
Sur un, quoi que je fasse, le Session.ID fonctionne correctement et reste là tant que l'utilisateur surf.
Sur l'autre, à chaques changement de page, le Session.ID change
je suis perdu là, j'ai configurer les service IIS sur les deux machines exactement pareil ( ecran cote-à-cote powa ) et pourtant ca marche pas
Help
Merci
Edit : Au cas ou, les session sont activée sur le deux serveur, et le time-out est de 20 minutes. Sur le serveur qui déconne, il m'affiche bien un Session.TimeOut de 30 minutes....
Message édité par snake-bis le 23-07-2003 à 13:51:19
---------------
Des fois il vaut mieux ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet. FeedBack