OVH Cloud OVH Cloud

Session.SessionID vraiment unique???

30 réponses
Avatar
Norm
Est-ce que quelqu'un sait comment est créer le session.sessionId.

J'ose croire que cette clé est unique, mias là des doutes me hantent.

Voici ce qui se passe de temps à autre, pas tout le temps.
J'ouvre une première fois mon intranet. Je place en session des données
(dataset).

J'en ouvre un deuxieme, et lorsque je vais lire ce qu'il y a en session il
récupère les données de ce qu'il y a dans la session du premier.

Avant j'utilisais sessionstate inproc, mais j'ai changer pour stateserver.
Le problème arrive d'une façon ou l'autre.

Ma première idée qui j'espère est fausse est que dans sa facon de créer de
session.sessionid il peut arriver qu'un id soit répéter.

Quelqu'un pour m'éclairer?

10 réponses

1 2 3
Avatar
Michel Thiffault
Tu n'aurais pas ce problème si tu utilisais des cookies au lieu de ces
$%*!&"/$ de variables session!

Norm wrote:
le résultat sera 4



Si au moins ca serait toujours le cas. Ca arrive un fois de temps à
autre.


Avatar
Norm
des cookies??? pour stocker des dataset, des objets etc.
Non merci!


"Michel Thiffault" a écrit dans le message de
news:%
Tu n'aurais pas ce problème si tu utilisais des cookies au lieu de ces
$%*!&"/$ de variables session!

Norm wrote:
>> le résultat sera 4
>
> Si au moins ca serait toujours le cas. Ca arrive un fois de temps à
> autre.




Avatar
Michel Thiffault
Ah... désolé, je ne connaissais pas ce détail (le variables sessions sont
refusées ici pour des raisons de "scalability" et on ne s'en porte que
mieux).

Ceci devrait t'aider:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbconDecidingOnDataAccessStrategy.asp

Une bonne discussion sur l'utilisation des variables sessions (oserais-je
répéter que je les déteste avec passion):

http://www.15seconds.com/issue/010307.htm

Notre catalogue web semblait ralentir énormément lorsque environ 200
utisateurs concurrents s'y trouvaient. Après avoir retiré les variables
sessions nous avons vu un "peak" de 450 utilisateurs concurents et tout ce
passait toujours bien.

Bon, j'arrête mon évangélisation! LOL

Norm wrote:
des cookies??? pour stocker des dataset, des objets etc.
Non merci!


"Michel Thiffault" a écrit dans le message de
news:%
Tu n'aurais pas ce problème si tu utilisais des cookies au lieu de
ces $%*!&"/$ de variables session!

Norm wrote:
le résultat sera 4



Si au moins ca serait toujours le cas. Ca arrive un fois de temps à
autre.






Avatar
Patrice
Normalement pas de soucis. Qu'est que tu stockes dans tes variables de
session ?

Est- ce que tu n'aurais pas une propriété "Shared" ou "Static" quelque part
(auquel cas elle sera partagée par tous les utilisateurs).

Patrice

--

"Norm" a écrit dans le message de
news:
Lors de l'ouverture de mon deuxieme i.e, s'il utilise le meme sessionId,
n'ira-t-il pas écraser Session["SessionKey"] et la première fenêtre aura
alors perdu ces info.
L'idée de prendre la date au démarrage et de la mettre en querystring, et


de
la concaténer pour chaque variable session permetterais d'éviter de la
perdre.

Et si jamais une deuxieme fenêtre utiliserais le meme sessionid, dans la
session il y aurait deux fois les variables, mais sans le meme nom et sans
la meme valeur.
exemple, je pourrais me retrouver avec un
Session("personnelid20042106161616") et


Session("personnelid20042106161718")
dans la même session.


Je continue mes recherches pour voir s'il y a une possibilité de


réutiliser
un sessionid déja ouvert.

"Dominic Pelletier" a écrit dans le
message de news:
> Mais si je relis ton premier message... Je mettreais ta sessionID+ ta


date
> dans Session["SessionKey"] = Session.SessionID+DateTime.Now.ToOADate();
>
> et tu met ta Session Key Dans tout t variable Session ex`
>
> DataSet ds = new DataSet(); // ton affectation.
> string sKey = (string)Session["SessionKey"] ;
> Session[sKey+"DataSet"] = ds;
>
> Dominic
> "Dominic Pelletier" wrote in message
> news:
> > Re:
> >
> > Je pense qu'on c mal compris ;)
> >
> > La concat de la date fonctionne seulement si tu veux te
faire
> > une clé unique a partir de la sessionid alors ca implique pas de


changer
> ton
> > sessionid par ton sessionid + ta date... car ca tu as pas de controle


la
> > dessus...
> >
> > mais ta sessions id + ta date , ca depend quesque tu veux faire


avec....
> >
> > tu peux toujours la passer en querystring au page connecter, la mettre
> dans
> > le viewstate ou en variable session ... ca depend du niveau de


securiter
> que
> > tu veux mettre sur la visibiliter de cette cle unique...
> >
> > Dit moi un peu ce que tu veux faire avec ... Je pourrai pe plus te
> > conseiller ...
> >
> >
> > Dominic
> >
> >
> > "Norm" wrote in message
> > news:
> > > Concaténé la date, je veux bien, mais je voix pas trop comment
> > >
> > >
> > > 1- Session(now & "mavariable") = "test"
> > > Comment récupérer ma variable après? mettre la date elle aussi
dans
> > une
> > > variable session?
> > >
> > > 2- Session.SessionId &= now
> > > Le session id n'est-il pas readOnly?
> > >
> > >
> > >
> > >
> > > "Dominic Pelletier" a écrit dans


le
> > > message de news:eAdI%
> > > > Bonjour Norm,
> > > >
> > > > Presque ;)
> > > >
> > > > Avec un niveau de chance peux élevé ;) tu peu arriver a avoir


le
> > même
> > > > ... Concat le OADate a ton SessionID , tu va etre sure que ce sera
> > jamais
> > > la
> > > > même. ;)
> > > >
> > > > Dominic
> > > > "Norm" wrote in message
> > > > news:%
> > > > > Est-ce que quelqu'un sait comment est créer le


session.sessionId.
> > > > >
> > > > > J'ose croire que cette clé est unique, mias là des doutes me
> hantent.
> > > > >
> > > > > Voici ce qui se passe de temps à autre, pas tout le temps.
> > > > > J'ouvre une première fois mon intranet. Je place en session des
> > données
> > > > > (dataset).
> > > > >
> > > > > J'en ouvre un deuxieme, et lorsque je vais lire ce qu'il y a en
> > session
> > > > il
> > > > > récupère les données de ce qu'il y a dans la session du premier.
> > > > >
> > > > > Avant j'utilisais sessionstate inproc, mais j'ai changer pour
> > > stateserver.
> > > > > Le problème arrive d'une façon ou l'autre.
> > > > >
> > > > > Ma première idée qui j'espère est fausse est que dans sa facon


de
> > créer
> > > de
> > > > > session.sessionid il peut arriver qu'un id soit répéter.
> > > > >
> > > > > Quelqu'un pour m'éclairer?
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




Avatar
Norm
Merci pour les liens, (en fait le 2e)

Je vais regarder avec mes compagnons de travail:
je retiens quand meme un point

Personally I would only limit myself to the session object nightmare when

1. cookies don't matter
2. deployed for a very limited environment

le point 2 c'est exactement notre cas, un Intranet. Donc, je ne bannirais
pas tout de suite les variables sessions, mais je continue de chercher une
façon de bien gérer tout ca.


Merci!

Norm



"Michel Thiffault" a écrit dans le message de
news:
Ah... désolé, je ne connaissais pas ce détail (le variables sessions sont
refusées ici pour des raisons de "scalability" et on ne s'en porte que
mieux).

Ceci devrait t'aider:



http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbconDecidingOnDataAccessStrategy.asp

Une bonne discussion sur l'utilisation des variables sessions (oserais-je
répéter que je les déteste avec passion):

http://www.15seconds.com/issue/010307.htm

Notre catalogue web semblait ralentir énormément lorsque environ 200
utisateurs concurrents s'y trouvaient. Après avoir retiré les variables
sessions nous avons vu un "peak" de 450 utilisateurs concurents et tout ce
passait toujours bien.

Bon, j'arrête mon évangélisation! LOL

Norm wrote:
> des cookies??? pour stocker des dataset, des objets etc.
> Non merci!
>
>
> "Michel Thiffault" a écrit dans le message de
> news:%
>> Tu n'aurais pas ce problème si tu utilisais des cookies au lieu de
>> ces $%*!&"/$ de variables session!
>>
>> Norm wrote:
>>>> le résultat sera 4
>>>
>>> Si au moins ca serait toujours le cas. Ca arrive un fois de temps à
>>> autre.




Avatar
Norm
"Patrice" a écrit dans le message de
news:
Normalement pas de soucis. Qu'est que tu stockes dans tes variables de
session ?


Effectivement normalement pas de soucis, sauf de temps à autre. Je stocke
des dataset et objet sérilalisé.


Est- ce que tu n'aurais pas une propriété "Shared" ou "Static" quelque


part
(auquel cas elle sera partagée par tous les utilisateurs)


Négatif.
Avatar
Patrice
Les deux sessions sont ouvertes sur le même poste ?

Patrice

--

"Norm" a écrit dans le message de
news:

"Patrice" a écrit dans le message de
news:
> Normalement pas de soucis. Qu'est que tu stockes dans tes variables de
> session ?
Effectivement normalement pas de soucis, sauf de temps à autre. Je stocke
des dataset et objet sérilalisé.


> Est- ce que tu n'aurais pas une propriété "Shared" ou "Static" quelque
part
> (auquel cas elle sera partagée par tous les utilisateurs)
Négatif.




Avatar
Norm
oui par le même utilisateur. C'est là le problème. Le contexte est celui
d'un Intranet, et un utilisateur peut ouvrir plus d'un internet explorer
pour travailler dans l'intranet. L'idée de restreindre à un seul i.e par
utilsateur est impensable.



"Patrice" a écrit dans le message de
news:
Les deux sessions sont ouvertes sur le même poste ?

Patrice




Avatar
Patrice
L'utilisateur doit-il se connecter sous un compte différent dans les deux
fenêtres ?

A priori :
- si la deuxième fenêtre est ouverte à partir de l'instance existante d'IE,
c'est la même session
- si la deuxième fenêtre est ouverte en double cliquant sur l'icône d'IE, ce
sera une nouvelle instance d'IE et une nouvelle session

Difficile à dire sans le contexte exact, mais si les utilisateurs ont besoin
de se connecter en même temps sous des comptes différents, j'aurais tendance
à voir si cela ne serait pas à intégrer dans l'application. Dans les
messageries, il est généralement possible de donner des droitds à d'autre
utilisateurs sur une boîte pour qu'ils puissent agir au nom d'un
utilisateur. A priori ils peuvent faire cela sans se
déconnecter/reconnecter.

Patrice

--

"Norm" a écrit dans le message de
news:
oui par le même utilisateur. C'est là le problème. Le contexte est celui
d'un Intranet, et un utilisateur peut ouvrir plus d'un internet explorer
pour travailler dans l'intranet. L'idée de restreindre à un seul i.e par
utilsateur est impensable.



"Patrice" a écrit dans le message de
news:
> Les deux sessions sont ouvertes sur le même poste ?
>
> Patrice
>
>




Avatar
Michel Thiffault
À ce que je sache il est impossible d'être certain qu'une nouvelle fenêtre
sera dans la même session ou non. Avant IE 5.5 il y avait une configuration
possible à cet effet: lancer les nouvelles fenêtre dans le même "process"
(désolé, je ne me souviens pas de la dernière fois où j'ai utilisé Windows
en français). Nous pouvions ainsi garantir que les sessions étaient
utilisées dans toutes les fenêtres. Depuis IE 5.5 Windows décide si les
fenêtre sont lancées dans le même process ou non (selon les ressources
disponibles si je ne m'abuse).



Patrice wrote:
L'utilisateur doit-il se connecter sous un compte différent dans les
deux fenêtres ?

A priori :
- si la deuxième fenêtre est ouverte à partir de l'instance existante
d'IE, c'est la même session
- si la deuxième fenêtre est ouverte en double cliquant sur l'icône
d'IE, ce sera une nouvelle instance d'IE et une nouvelle session

Difficile à dire sans le contexte exact, mais si les utilisateurs ont
besoin de se connecter en même temps sous des comptes différents,
j'aurais tendance à voir si cela ne serait pas à intégrer dans
l'application. Dans les messageries, il est généralement possible de
donner des droitds à d'autre utilisateurs sur une boîte pour qu'ils
puissent agir au nom d'un utilisateur. A priori ils peuvent faire
cela sans se déconnecter/reconnecter.

Patrice


"Norm" a écrit dans le message de
news:
oui par le même utilisateur. C'est là le problème. Le contexte est
celui d'un Intranet, et un utilisateur peut ouvrir plus d'un
internet explorer pour travailler dans l'intranet. L'idée de
restreindre à un seul i.e par utilsateur est impensable.



"Patrice" a écrit dans le message de
news:
Les deux sessions sont ouvertes sur le même poste ?

Patrice






1 2 3