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