Повторный запрос cookie или сохранение в viewstate? Какая из них лучше?

У меня есть внутренний веб-сайт, в который входят пользователи. Эти данные сохраняются как файлы cookie. Оттуда пользователи продолжают веселиться. Каждое так часто приложение запрашивает запись аутентификации, чтобы определить, какие разрешения у пользователя есть.

Мой вопрос заключается в следующем: эффективнее ли просто запрашивать cookie для пользовательских данных, когда это необходимо, или для сохранения информации пользователя в viewstate?

[Изменить] Как упоминалось ниже, сеанс также является вариантом.

Ответ 1

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

Лучше всего использовать аутентификацию форм, встроенную в ASP.NET, и вы также можете перетащить любую пользовательскую информацию в значение билета аутентификации форм. Вы можете получить 4000 байтов (после шифрования) там, где должны храниться все, что вам нужно. Он также позаботится о том, чтобы разрешить и запретить пользователям доступ к страницам на сайте, и вы можете установить срок его действия, когда вам нужно.

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

Ответ 2

Лично я предпочитаю использовать сеанс для хранения вещей, хотя другие разработчики здесь, похоже, считают, что нет-нет.

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

Ответ 3

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

Ответ 4

Я бы использовал метод cookie. Сессия в порядке, но у вас есть утилита asp.net при перекомпиляции, и вам нужно использовать несекс файл cookie, если вы хотите сохранить его после сеанса в любом случае. Также, если вы когда-либо используете государственный сервер, он по сути делает то же самое (хранит сеанс в db). Сессия похожа на быстрое и грязное исправление, настоящие мужчины используют файлы cookie.