Как я могу отладить сессию - PullRequest
0 голосов
/ 02 мая 2010

Меня попросили работать с очень большим веб-приложением и развернуть его.Проблема, с которой я здесь сталкиваюсь, заключается в том, что при развертывании приложения и регистрации в системе более 1 пользователя сеансы, как представляется, пересекаются, т. Е.хорошо.Когда человек B входит в систему, человек A будет также зарегистрирован как человек B.

Меня попросили создать очень большое веб-приложение и развернуть его.Проблема, с которой я здесь сталкиваюсь, заключается в том, что когда я развертываю приложение и в систему входит более 1 пользователя, сеансы, кажется, пересекаются, т.е.хорошо.Когда человек B входит в систему, тогда человек A будет также зарегистрирован как человек B.

Если кто-то уже сталкивался с таким поведением и может направить меня в правильном направлении, это будет первый приз, Второй приз будетчтобы показать мне, как я могу отладить эту ситуацию, чтобы я мог выяснить, где проблема и устранить ее.

Некоторая информация о приложении.Из того, что мне сказали и что я видел в приложении, это то, что оно началось как приложение .Net 1.1 и было обновлено до .Net 2, и поэтому система входа в систему была сделана такой, какая она есть.(Приложение огромно и теперь завершено, и поэтому я не могу переписать весь процесс аутентификации пользователя, это займет много времени, и я не знаю, какой эффект это может оказать)

Вся информация о зарегистрированном пользователехранится в свойствах, которые были добавлены в файл Global.asax.vb.(может ли это быть проблемой?)

Любая помощь здесь будет принята с благодарностью

Ответы [ 3 ]

1 голос
/ 02 мая 2010

Сеансы на сервере не пересекаются, поэтому фактическая причина должна заключаться в том, что на самом деле нет двух отдельных пользователей или что информация фактически не хранится в отдельных сеансах.

Браузерсеансы

Когда вы открываете новое окно браузера из другого окна в Internet Explorer, они находятся в одном экземпляре браузера и, таким образом, остаются тем же пользователем.Сервер не может различить окна на основе идентификатора сеанса, поскольку они совместно используют файлы cookie и отправляют один и тот же идентификатор.Вы должны запустить новый экземпляр, чтобы войти в систему как отдельный пользователь.

В Firefox всегда есть только один экземпляр.Даже если вы попытаетесь запустить другой экземпляр, он просто откроет окно в существующем экземпляре.Таким образом, вы не можете войти в систему как отдельные пользователи в отдельных окнах.

Объекты сеанса

Чтобы хранить информацию в сеансе пользователя, вам фактически нужно сохранить ее в объекте Session.Если вы создадите свойства в объекте GLobal в global.asax, они будут доступны всем пользователям.Даже если вы используете метод, подобный Session_Start, у пользователя нет отдельного экземпляра объекта Global.

0 голосов
/ 02 мая 2010

Я не думаю, что случайно, когда личность пользователя читается из сеанса, она сохраняется в статическом поле, а не в поле экземпляра в базовом классе, не так ли? А потом записывается обратно на сессию? Я сталкивался с этим раньше.

0 голосов
/ 02 мая 2010

У нас была похожая ситуация в нашем коде, сделанном поставщиком. В нашем случае проблема была связана с использованием глобальных статических переменных, назначенных из сеанса.

...