Это - довольно общая вещь сделать, и сессия обычно будет быстрее, чем непрерывные хиты базы данных. Они также довольно безопасны, поскольку PHP devs упорно работали для предотвращения Перехвата сеанса.
единственная проблема - то, что необходимо не забыть восстанавливать запись сессии, когда что-то изменяется. И, если что-нибудь изменяется пользователем кроме того, который владеет сессией, которая привела бы к потребности обновить этот ключ, нет никакого простого способа уведомить систему для обновления этого сеансового ключа. Возможно не грандиозное предприятие, но что-то необходимо знать.
Не перечисление, но:
var primitives = typeof(int).Assembly.GetTypes()
.Where(type => type.IsPrimitive).ToArray();