Как я могу хранить данные сеанса в ASP.NET? - PullRequest
1 голос
/ 10 марта 2009

У нас есть гибкое приложение, которое работает с ASP.NET. (через weborb). И мы используем несколько данных на стороне .NET для загрузки данных, например: UserId, ChannelId, ... На данный момент в имени HttpContext.Current.Identity хранится только идентификатор пользователя. Таким образом, гибкая сторона не должна постоянно выдвигать идентификатор пользователя, но теперь мы хотим отключить и «push» канала.

Мне было интересно, где мы должны "хранить" эти данные. Достаточно ли сохранить сессию или нам нужно использовать куки? или есть какие-то другие методы для этой "проблемы".

Ответы [ 3 ]

7 голосов
/ 10 марта 2009

Я бы рекомендовал использовать Session, потому что значения затем сохраняются на сервере (куки хранятся на клиенте). Также используйте статический класс и перенесите туда сессию.

Вместо

Session["channelid"] = ChannelId

использовать

SessionManager.ChannelId = ChannelId

и вы можете объявить SessionManager как статический класс со статическими свойствами, которые используют сеанс. Я считаю, что это обычная практика Microsoft.

Приветствия

1 голос
/ 10 марта 2009

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

Cookies - это опция, однако она означает, что данные хранятся на стороне клиента, что может быть нежелательным и сводит на нет каждый запрос, отправляемый на сервер.

0 голосов
/ 10 марта 2009

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

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