Сеанс ASP.net является общим по умолчанию? - PullRequest
3 голосов
/ 21 февраля 2009

Я делаю приложение, которое использует переменные сеанса. Я создал класс «HistoryLine», а другой - «HistoryLineCollection» со списком «HistoryLine» в нем. Затем я сохраняю экземпляр HistoryLineCollection в сеансе следующим образом:

Session ["HistoryLines"] = hLines;

Проблема в том, что когда я смотрю это на другом компьютере, я вижу тот же список! Я думал сессии, где клиент уникальный? Я посмотрел в sessionState и, возможно, SessionID клонирован или что-то, но я просто не вижу его. У кого-нибудь есть идея?

Ответы [ 3 ]

1 голос
/ 21 февраля 2009

Нет, сеанс asp.net не является общим. Одним из способов достижения этой цели является просмотр приложения на одном компьютере, а затем использование ссылки на другом компьютере (скажем, кому-то это). В этом случае, если у вас отключены файлы cookie, идентификатор сеанса находится на URL. Другой человек будет на том же сеансе. Если это не так, взгляните на классы, которые вы используете, особенно те, которые помечены как статические.

1 голос
/ 21 февраля 2009

Являются ли члены класса, который создан и затем помещен в Сессию, как-то статичными (иначе говоря, общими)?

0 голосов
/ 21 февраля 2009

Проверьте код, который создает список для ввода в сеанс. Вероятно, вы создаете один и тот же список для каждой сессии.

...