Повторный запрос cookie или хранение в viewstate? Какая практика лучше? - PullRequest
1 голос
/ 03 октября 2008

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

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

[Редактировать] Как упоминалось ниже, Session также является опцией.

Ответы [ 4 ]

1 голос
/ 03 октября 2008

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

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

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

1 голос
/ 03 октября 2008

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

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

0 голосов
/ 21 января 2009

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

0 голосов
/ 03 октября 2008

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

...