ASP.Net - Какова текущая лучшая практика для отслеживания переменных состояния и сеанса?
Мы создаем новое потребительское / общедоступное веб-приложение ASP.Net. Есть две проблемы:
- Использовать cookie или аутентификацию без cookie форм?
- Если мы решим вообще не использовать куки, как бы вы сохранили данные, которые в противном случае будут храниться в куки (идентификатор клиента, AffiliateID и т. Д.). Отслеживает ли структура аутентификации ASP.Net что-то вроде CustomerID?
2 ответа
Для обычного веб-приложения нет веской причины использовать аутентификацию без файлов cookie - страх перед файлами cookie прекратился около десяти лет назад.
Для реальных данных объект сеанса, как правило, является лучшим выбором, чем отдельные файлы cookie. Файл cookie сеанса представляет собой одно значение, которое эффективно дает вам ключ к любым данным сеанса, которые вы сохранили на сервере. Есть определенные специализированные случаи, когда возникают проблемы с использованием сеанса, например, в многосерверных развертываниях, но в большинстве приложений это просто и адекватно.
Система проверки подлинности стандартных форм отслеживает имя пользователя - как правило, этого достаточно для поиска любых необходимых вам данных из вашей базы данных, если вы не хотите сохранять что-либо в сеансе.
Если вы делаете аутентификацию, куки являются обычным методом. В наши дни очень редко люди отключают куки, потому что от них уже зависит так много сайтов.
Сказав это, ASP.NET поддерживает аутентификацию без файлов cookie. По сути, он просто добавляет маркер аутентификации в качестве параметра в URL. Он анализирует все исходящие URL-адреса, чтобы убедиться, что они также содержат информацию о токене. Лично я не стал бы беспокоиться об этом и просто потребовал бы куки. Есть несколько дополнительных проблем при попытке избежать использования файлов cookie (например, это может значительно усложнить SEO, поскольку поисковые системы будут видеть разные URL-адреса каждый раз, когда сканируют страницу).