ASP.NET: вопрос о переменной сеанса - PullRequest
1 голос
/ 04 августа 2011

Как новичок в asp.net, у меня есть вопрос о переменных сеанса.

Я создаю интранет-приложение для своей компании. Естественно, это зверь, и есть некоторые переменные (объекты класса), которые необходимо сохранить. Скажем, объект класса с именем «Driver», который имеет FirstName [String] и LastName [String].

Теперь скажите, что я храню объект следующим образом:

Dim objDriver as Driver

objDriver.FirstName = "Joe"
objDriver.LastName = "Smith"

Session.Contents("Driver") = objDriver

Этот код, кажется, выполняется и функционирует довольно хорошо. Теперь мой вопрос: если Сьюзи зайдет на другой компьютер и попробует приложение, увидит ли она информацию Джо, когда выполнит

Dim objDriver as Driver

objDriver = Session.Contents("Driver")

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

Спасибо

Jason

Ответы [ 4 ]

1 голос
/ 04 августа 2011

Нет, Сьюзи ничего не увидит. Чтобы сделать это возможным, используйте кэш приложения ...

Сессии идентифицируются уникальным идентификатором, который может быть прочитан используя свойство SessionID. Когда состояние сеанса включено для Приложение ASP.NET, каждый запрос на страницу в приложении проверено значение SessionID, отправленное из браузера. Если нет SessionID значение предоставляется, ASP.NET запускает новый сеанс и SessionID значение для этого сеанса отправляется в браузер с ответом.

http://msdn.microsoft.com/en-us/library/ms178581.aspx

Вместо этого используйте:

dim foo = HttpContext.Current.Application("foo");

и

HttpContext.Current.Application("foo") = foo;
0 голосов
/ 04 августа 2011

Сессионные объекты существуют для каждого пользователя в браузере.Так что у Сьюзи будет сеанс в Firefox, но другой - в Internet Explorer.Это связано с тем, что каждому браузеру назначается уникальный файл cookie.

0 голосов
/ 04 августа 2011

Сессия создается для каждой сессии, как это можно понять.Если вы войдете в систему, скажем, с помощью Google Chrome и создадите некоторые переменные, вы не сможете получить доступ к этим переменным из Firefox с того же компьютера.

0 голосов
/ 04 августа 2011

Состояние сеанса зависит от сеанса браузера. Так что нет, Сьюзи не увидит данные Джо. Даже если Джо откроет новое окно браузера на том же компьютере, он больше не будет в том же сеансе.

Состояние приложения может быть другой историей - и вы можете посмотреть на это, если вы действительно хотите совместно использовать переменные в такой широкой области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...