Максимальная длина свойства FormAuthenticationTicket.UserData
Я внедряю класс Custom Identity для сайта ASP.Net 4.0 с использованием проверки подлинности на основе этого учебника:
Конфигурация аутентификации форм и расширенные темы
Я хотел бы сохранить дополнительную информацию о пользователе (имя/фамилия, пол, географический регион, имя файла изображения профиля и т.д.) в AuthCookie. Предупреждение о msdn.microsoft.com об ограничении размера свойства UserData.
Мне не удалось найти предельный предел для свойства UserData. Только то, что весь зашифрованный cookie должен быть не более 4096 байт.
Кто-нибудь знает максимальный лимит символов, который я должен принять в своем коде? Или лучше понять, как хранить эти часто требуемые фрагменты пользовательской информации?
Спасибо
Ответы
Ответ 1
Нет явного ограничения - максимальный размер будет зависеть, например, от длины имени пользователя. Также максимальный размер файла cookie (или URL-адреса, если вы используете cookieless-билеты) зависит от браузера.
Вы можете сохранить такую информацию на стороне сервера (например, сеанс), возможно, с каким-то ключом/идентификатором в файле cookie. Один из способов сделать это - реализовать пользовательский ProfileProvider
.
Одним из недостатков хранения информации, относящейся к конкретному приложению, такой как вы описываете в cookie FormsAuthentication, является то, что вам потребуется какая-то редизайн, если когда-либо ваше приложение должно переключиться с FormsAuthentication на другой метод проверки подлинности (например, WindowsAuthentication).
Лично я бы сохранил информацию, релевантную для аутентификации и, возможно, авторизации в файле cookie FormsAuthentication, поскольку что-то еще увеличит связь.
Ответ 2
Это зависит от максимальной длины файла cookie браузера.
Эта статья может помочь: Ограничение Cookies в браузере
И эта статья также поможет вам проверить свой текущий размер билета проверки:
Проверка проверки подлинности аутентификации Asp.Net