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