Хранение вошло в систему пользовательские детали

Можете ли вы использовать ResourceConfig#getResources на вашем объекте ResourceConfig, а затем получить нужную информацию, итерации через Set , который он возвращает?

Извиняюсь, попробовал бы это, но у меня нет ресурсов , чтобы сделать это прямо сейчас. :-p

8
задан Community 9 September 2008 в 22:13
поделиться

8 ответов

Я рекомендую хранить идентификатор, а не объект. Оборотная сторона - то, что необходимо поразить базу данных каждый раз, когда Вы хотите получить информацию того пользователя. Однако, если каждая миллисекунда количества на Вашей странице, производительность не должна быть проблемой. Вот два преимущества:

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

  2. Если Ваша информация сессии хранится на жестком диске, то можно только хранить сериализуемые данные. Таким образом, если Ваш Пользовательский объект когда-нибудь будет содержать что-нибудь как соединение с базой данных, открытый сокет, дескриптор файла, то и т.д. затем это не будет сохранено правильно и не может быть очищено правильно также.

В большинстве случаев эти проблемы не будут проблемой, и любой подход был бы прекрасен.

11
ответ дан 5 December 2019 в 06:55
поделиться

Хранение идентификатора является лучшей практикой в большинстве случаев. Одной важной причиной этого является масштабируемость. При хранении пользовательского объекта (или любые объекты от базы данных, вместо просто их идентификаторов), Вы собираетесь столкнуться с проблемами, расширяющими количество серверов, служащих Вашему сайту. Для получения дополнительной информации, Google для "общего ничто архитектура".

2
ответ дан 5 December 2019 в 06:55
поделиться

Я думаю, что это зависит, на какой платформе Вы используете. Если бы Вы используете ASP.net, то я определенно смотрел бы на класс FormsAuthentication и все встроенные (и растяжимый) функциональность там, что можно использовать для хранения настроек зарегистрированного пользователя.

1
ответ дан 5 December 2019 в 06:55
поделиться

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

Лично, я храню имя и идентификатор для справочника, и выбираю остальных, когда я должен.

3
ответ дан 5 December 2019 в 06:55
поделиться

Я сохранил бы хешированное значение идентификатора пользователя и идентификатора сессии и затем подошел бы это в таблице сессий в базе данных. Тем путем будет более трудно имитировать данные сессии. Мог сделать я проверяю IP также как дополнительную проверку.

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

1
ответ дан 5 December 2019 в 06:55
поделиться

Для пользы безопасности я генерировал бы (или GUID или криптографически безопасный RNG) идентификатор сессии и имел бы таблицу, которая просто отображает идентификаторы сессии на идентификаторы пользователей. Затем Вы просто храните идентификатор сессии в их cookie и имеете его действие как прокси для идентификатора пользователя.

|Session |UserID |
|--------+-------|
|a1d4e...+ 12345 |
|--------+-------|
|c64b2...+ 23456 |
|--------+-------|

С этим никто не может исполнить роль другого пользователя путем предположения их идентификатора. Это также позволяет Вам ограничить сессии пользователей, таким образом, они должны войти в систему время от времени (две недели обычное). И если Вы хотите хранить другие данные об их сессии, можно просто добавить его к этой таблице.

6
ответ дан 5 December 2019 в 06:55
поделиться

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

0
ответ дан 5 December 2019 в 06:55
поделиться

Я храню пользователя на сессии, обычно. can't-change-until проблема с логином может быть решена путем замены объекта на сессии с новой копией после внесения изменений.

0
ответ дан 5 December 2019 в 06:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: