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