2013-03-01 1 views
0

Здесь я столкнулся с ситуацией, когда мне нужно разделить пользовательские данные между страницами (например, имя/фамилия/адрес электронной почты и т. Д.) Без использования сеанса., как обмениваться пользовательскими данными без использования сеансов в .net

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

Таким образом, моя компания строго заявила, чтобы не использовать сеансы.

Мы не можем использовать хранилище данных (sql) для хранения сеансов из-за некоторого ограничения снова.

Теперь критический вопрос заключается в том, как мы можем делиться конкретными данными пользователя, не используя сеансы/файлы cookie/хранилища данных.

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

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

Примечание: Я использую MVC4 (Razor двигатель)

ответ

1

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

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

+0

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

+1

Конечно, его можно использовать так: 'MemoryCache.Default [" profile_ "+ User.Identity.Name] = userSpecificInformation;'. Как я объяснил в своем ответе, вам нужно использовать специальный ключ для вашего кеша. Это все. –

+0

+ 1 - использование хранилища memcached, которое обеспечивает быстрый поиск. –

0

Cookies могут быть использованы.

  • Он будет потреблять дополнительную нагрузку при передаче между браузером и сервером.
  • Он будет храниться на клиентской машине.
  • Вы можете шифровать/дешифровать данные для безопасности с помощью специального кода.
+0

куки не успокаиваются –