ASP.NET et les session.ID

Résolu
Troyan Messages postés 170 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 21 janvier 2012 - 6 janv. 2006 à 16:19
Troyan Messages postés 170 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 21 janvier 2012 - 14 janv. 2006 à 13:22
Bonjour,

je dois stocker pour reconnaitre un internaute la valeur de Session.ID
hors contrairement aux ASP 3.0 cette derniere change à chaque page de navigation
je ne peut donc plus faire mes traitements !

Comment recuperer la valeur de session mais celle qui est la meme jusqu'au timeout ?


******************************************
Installation Home-Cinéma de particuliers sur http://www.digital16-9.com

15 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
14 janv. 2006 à 01:53
En fait pour les SessionID, j'ai fait des test un peu plus appronfondis, et Session.SessionID est constante si et seulement si il y a au moins une variable dans la session, sinon (si la session est vide) alors le sessionID change à chaque fois ...


<HR>
Cyril - MVS - MCP ASP
3
Troyan Messages postés 170 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 21 janvier 2012
6 janv. 2006 à 17:48
bon je comprends plus rien !

alors quand je mets dans le web.config cookieless="true"
l'url se targe de la valeur de la session et effectivement mon Session.SessionID est identique

quand je mets cookieless="false" il ne s'affiche plus dans l'url mais change a chaque fois ????

Hors en ASP 3.0 il ne s'affiche pas et pourtant il ne change pas à chaque page ?

Comment faire pour avoir pareil ? j'ai essayé toutes les valeurs rien n'y fait !

Je cherhce à ce qu'elle ne change pas et qu'elle n'apparaisse pas dans l'url ?
Comme en ASP 3.0


******************************************
Installation Home-Cinéma de particuliers sur http://www.digital16-9.com
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
6 janv. 2006 à 17:50
Ca m'etonne que le session.id change à chaque nouvelle page ...

Mais je ne comprend pas pourquoi tu cherches à connaitre la valeur de l'id, pourquoi ne passes tu pas tout simplement par une valeur dans une variable session ?


<HR>
Cyril - MVS - MCP ASP
0
Troyan Messages postés 170 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 21 janvier 2012
6 janv. 2006 à 17:59
C'est bien session.sessionID nous sommes d'accord ?
moi aussi je ne comprends pas pourquoi cela change à chaque fois ???
Seul quand je mets cookieless="true" ca ne change pas ?

c'est une bonne idée la valeur dans la variable global
toutefois quelle methode utiliserais tu pour générer une clef unique dans cette variable ?
celle du session.sessionID ?


******************************************
Installation Home-Cinéma de particuliers sur http://www.digital16-9.com
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
6 janv. 2006 à 18:55
Je crois qu'on s'est pas compris :)

fais tout simplement : session("variable") = truc non ? ou alors t'as une nouvelle session à chaque fois


<HR>
Cyril - MVS - MCP ASP
0
Troyan Messages postés 170 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 21 janvier 2012
7 janv. 2006 à 03:07
le truc c'est de stocker des infos dans une base pendant la navigation de l'internaute
donc la sessionID c'est idéal mais quand je cherche à la recup j'en ai une differente à chaque changement de page ou de click !

sauf si je choisi cookieless="true" mais dans ce cas c'est l'url qui prends la valeur avec le cookie.
ce que je voudrai c'est pareil qu'il ne change pas de session à chaque page mais en cachant cette info de l'url.

en fait exactement comme les ASP 3.0 et qu'on recupérer le sessionID

Oui je vois ce que tu veux dire avec session("variable") = truc mais comme truc je le stock en base je ne vais plus reconnaitre un internaute d'un autre ? vu que tous auront comme valeur Truc !

c'est pour cette raison qu'il faut que je recupere un id de session mais qui reste pour toute la naviation de l'internaute mais si possible caché de l'url !!


******************************************
Installation Home-Cinéma de particuliers sur http://www.digital16-9.com
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 janv. 2006 à 03:30
Je crois que t'as pas compris à quoi sert les variables sessions :)

Je viens de tester et effectivement les id de sessions changent à chaque fois, mais ca on s'en fout !
Dans le global.asax si tu fais dans l'evenement

void application_start(...)
{
Application["UserID"] = (int)0; // ou tout autre valeur que tu veux
}

void session_start(...)
{
Application["UserID"] += 1;
this.Session["userID"] = (int)Application["UserID"];
}

puis dans ton code,

tu pourras utiliser this.Session["userID"] et cette fois ce numéro restera le meme durant toute la session ! plutot que de faire un numéro qui se suit tu peux aussi faire un nouveau GUID etc... libre cours à ton imagination ;)


<HR>
Cyril - MVS - MCP ASP
0
Troyan Messages postés 170 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 21 janvier 2012
7 janv. 2006 à 14:09
haha si crois moi c'est pas parce que je suis débutant en dotnet que je suis nul en ASP
mais j'avoue que cette masse d'information et de devoir tout remattre a zero pour faire des trucs simple c'est pas tjrs évident !

Effectivement t'as methode me plait pas mal !
faut juste que je prenne autre chose qu'une valeur dépendante de l'application car si pour une raison ou une autre le serveur redemarre je risque de me retrouver avec des numéro dejà en base et ca risque de foutre la zone !

rien m'empeche de stocker le sessionID juste au départ de la session et moi je garde ce numéro dans une variable de session Perso par exemple !
session("ClientSess")

qu'est-ce que t'en dit je vais pouvoir avoir le meilleurs des 2 mondes quand meme !
mais c'est quand meme bizarre que la sessionID change à chaque fois quand meme !

Bon c'est vrai qu'en plus j'aime bien comprendre pourquoi ça ca marche ou pas !
plutot que de l'appliquer betement !
en fait vu que j'ai fais dernierement le site de www.camara.fr j'essais de le refaire complement de A à Z en dotnet. C'est un bon exercice je trouve !


******************************************
Installation Home-Cinéma de particuliers sur http://www.digital16-9.com
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 janv. 2006 à 14:23
Perso, je me sert jamais du sessionID, mais effectivement c'est bizarre, il doit y avoir une raison : MSDN :p

Sinon, oui pourquoi pas mettre le sessionID dans une variable session lors du démarrage de la session, mais vu que les N° change mieux vaut peut etre mettre un GUID qui sera unique.

Juste une petite info, asp.net a la possibilité de stocker les sessions dans une bdd ... ca se configure au niveau du web.config et ca existe pour les gros sites qui necessite plusieurs serveurs web, ainsi ils peuvent partager les variables de sessions ...


<HR>
Cyril - MVS - MCP ASP
0
Troyan Messages postés 170 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 21 janvier 2012
7 janv. 2006 à 19:13
Oui j'ai vu ca dans la doc je vais peut etre creuser de ce coté la vu que je me sert d'un serveur SQL 2005 et la c'est plutot mon truc ;)

par contre peut tu m'en dire plus sur le GUID ca par contre ca ne me dit rien ?

merci par avance !


******************************************
Installation Home-Cinéma de particuliers sur http://www.digital16-9.com
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 janv. 2006 à 19:33
(
New Guid()).ToString()

Ca genere un Numéro unique sur 32 caractères je crois, regarde sur msdn tu devrais pleins d'info la dessus aussi.


<HR>
Cyril - MVS - MCP ASP
0
danielt92 Messages postés 16 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 17 mai 2006
13 janv. 2006 à 23:55
Hello,
J'arrive un peu après la bataille, mais...n'auras-tu pas tout simplement désactivé les cookies dans ton navigateur ?
çà expliquerait exactement ce comportement...de perte du cookie de session.
C'est d'ailleurs pour çà que le cookieless a été inventé...

Cordialement,

<HR>
Daniel - MCSD.NET, MCT
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
14 janv. 2006 à 00:09
Non, le problème vient pas de la.

Dans ASP.net 2 le sessionID change bien à chaque nouvelle page, par contre on peut toujours stocker les variables sessions classiquement ...

Je ne sais pas si le sessionID était constant lors de la session en asp.net 1.1 mais ce n'est plus le cas en .net 2


<HR>
Cyril - MVS - MCP ASP
0
Troyan Messages postés 170 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 21 janvier 2012
14 janv. 2006 à 00:37
merci à vous !
mais j'ai fais un mix en fait !

je stock le guid dans une variable de sessions
session("Session_ID") = la valeur donnée par le GUID qui d'ailleurs est un string et plus un integer ce qui m'a forcer à changer quelques truc mais bon sachant aussi qu'une base recherche moins vite un string qu'un integer mais bon c'est pas grave ca repond à ma problematique je reviendrais la dessus plus tard !

je dois tellement voir de truc que quand j'aurais fini j'aurais au moins eu l'avantage d'avoir fait un super tour de ce que j'aurais besoin au quotidient !

mais c'est vrai faut reconnaitre c'est asser plaisant je vais avoir du mal à retourner sur les asp 3.0 quand je vais devoir intervenir sur de l'existant pour des clients ... snif


******************************************
Installation Home-Cinéma de particuliers sur http://www.digital16-9.com
0
Troyan Messages postés 170 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 21 janvier 2012
14 janv. 2006 à 13:22
ok t'es un vrai malin donc la solution saurais dans le global
sur le sesson on start
initialiser une session("CLIENT") = "blablabla"
et apres session.sessionid renvoi la meme valeur ?

bravo à toi cyril !


******************************************
Installation Home-Cinéma de particuliers sur http://www.digital16-9.com
0
Rejoignez-nous