Повторный запрос cookie или сохранение в viewstate? Какая из них лучше?
У меня есть внутренний веб-сайт, в который входят пользователи. Эти данные сохраняются как файлы cookie. Оттуда пользователи продолжают веселиться. Каждое так часто приложение запрашивает запись аутентификации, чтобы определить, какие разрешения у пользователя есть.
Мой вопрос заключается в следующем: эффективнее ли просто запрашивать cookie для пользовательских данных, когда это необходимо, или для сохранения информации пользователя в viewstate?
[Изменить] Как упоминалось ниже, сеанс также является вариантом.
Ответы
Ответ 1
Viewstate определен для страницы, которую они просматривают, поэтому ее ушли, когда они идут по веселью. Не лучший способ сохранить данные.
Лучше всего использовать аутентификацию форм, встроенную в ASP.NET, и вы также можете перетащить любую пользовательскую информацию в значение билета аутентификации форм. Вы можете получить 4000 байтов (после шифрования) там, где должны храниться все, что вам нужно. Он также позаботится о том, чтобы разрешить и запретить пользователям доступ к страницам на сайте, и вы можете установить срок его действия, когда вам нужно.
Сохранение в сеансе - это no-no, потому что он очень сильно масштабируется (ест ресурсы на сервере), и это может раздражать пользователей с несколькими подключениями браузера к одному и тому же серверу. Иногда это неизбежно, но вы должны прилагать большие усилия, чтобы избежать этого, если сможете.
Ответ 2
Лично я предпочитаю использовать сеанс для хранения вещей, хотя другие разработчики здесь, похоже, считают, что нет-нет.
Существует одна оговорка: вы можете захотеть сохранить IP-адрес пользователя в сеансе и сравнить его с текущим IP-адресом пользователя, чтобы избежать захвата сеанса. Возможно, у кого-то еще есть лучшая идея о том, как предотвратить захват сеанса.
Ответ 3
Вы можете использовать данные сеанса - таким образом, вы знаете, что как только вы его сохранили, пользователи не могут обманывать его, изменяя строку запроса.
Ответ 4
Я бы использовал метод cookie. Сессия в порядке, но у вас есть утилита asp.net при перекомпиляции, и вам нужно использовать несекс файл cookie, если вы хотите сохранить его после сеанса в любом случае. Также, если вы когда-либо используете государственный сервер, он по сути делает то же самое (хранит сеанс в db). Сессия похожа на быстрое и грязное исправление, настоящие мужчины используют файлы cookie.