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