2009-02-20 6 views
3

Je fais une application qui utilise des variables de session. J'ai créé une classe "HistoryLine" et une autre appelée "HistoryLineCollection" avec une liste de "HistoryLine" dans celle-ci. Je puis enregistrer l'instance de HistoryLineCollection à la session comme suit:La session ASP.net est partagée par défaut?

Session ["HistoryLines"] = hLines;

Le problème est que lorsque je regarde ceci sur un autre ordinateur, je vois la même liste! Je pensais que les sessions où le client était unique? J'ai regardé dans la sessionState et peut-être que le SessionID est cloné ou quelque chose, mais je ne peux pas le voir. Quelqu'un a une idée?

Répondre

1

Non, la session asp.net n'est pas partagée. Une façon pour que cela se produise est de parcourir l'application sur un ordinateur, puis d'utiliser le lien sur un autre ordinateur (dites-le à quelqu'un). Dans ce scénario, si vous avez désactivé les cookies, l'ID de session se trouve sur l'URL. L'autre personne serait sur la même session. Si ce n'est pas le cas, jetez un oeil aux classes que vous utilisez, spécialement tout ce qui est marqué comme statique.

+0

J'ai oublié que ma liste a été partagée. Le rendre non partagé et instancier des objets a fait l'affaire! – miccet

0

Vérifiez le code qui crée la liste à mettre en session. Vous créez probablement la même liste pour chaque session.

+0

J'utilise la même classe pour générer la liste des éléments, si c'est ce que vous voulez dire. J'ai mis une variable de session pour contenir la liste d'éléments et l'obtenir de la même manière, avec une distribution. – miccet

1

Les membres de la classe qui est créée et mis en session sont-ils en quelque sorte statiques (alias partagé)?

Questions connexes