Хорошо, я новичок в веб-разработке, поэтому могу неправильно понять некоторые из этих терминов. Заранее прошу прощения.
У меня проблемы с пониманием различных элементов аутентификации. Кажется, что кто-то не рекомендует использовать каждый метод, хотя и не всегда по понятным причинам. Я создаю веб-приложение для компании, у которой будет доступ к базе данных, поэтому я хотел бы убедиться, что оно безопасно.
Итак, я видел три места, которые обычно используются для хранения информации.
FormsAuthentication.SetAuthCookie (). В нем хранится файл cookie сеанса, срок действия которого истекает в браузере, и на клиенте нет ничего важного. Однако он может хранить только одно значение. В этом ответе stackoverflow показан метод хранения здесь нескольких значений, но парень, который дает указание не использовать его, но не объясняет почему.
FormsAuthenticationTicket. Я не знаю, где хранится эта информация, но она позволяет использовать простой метод хранения нескольких значений. Для его защиты, согласно документации, требуется вызов Encrpty () для сохранения и decrypt () для получения. Это кажется расточительным, но что я знаю.
Сессия ["SomeRef"] = новый CustomObject (). Второй ответ в этом вопросе объясняет, как это сделать, но в комментарии к нему это называется опасным, поскольку его можно украсть. Мне это кажется лучшим методом, потому что информация по-прежнему хранится на сервере и может хранить несколько значений.
Я не могу найти никаких сравнений для этих методов или хороших объяснений "передового" способа хранения нескольких фрагментов информации после аутентификации пользователя. Информация - это просто имя пользователя и его userId.