FormsAuthenticationTicket.UserData属性的最大长度

时间:2011-09-08 06:41:51

标签: c# asp.net forms-authentication asp.net-4.0 formsauthenticationticket

我正在使用基于本教程的表单身份验证为ASP.Net 4.0站点实现自定义标识类:
Forms Authentication Configuration and Advanced Topics

我想在AuthCookie中存储额外的用户信息(名字/姓氏,性别,地理区域,个人资料图片缩略图文件名等等)。 msdn.microsoft.com上有关于限制UserData属性大小的警告。

我无法为UserData属性找到明确的字符限制。只有整个加密 cookie应该在4096字节以下。

有人知道我应该在代码中假设的最大字符数限制吗?或者更好地了解如何存储这些经常需要的用户信息?

由于

2 个答案:

答案 0 :(得分:6)

没有明确的限制 - 例如,最大大小将取决于用户名的长度。此外,cookie的最大大小(如果您使用的是无Cookie票证,则为URL的最大大小)取决于浏览器。

你可以在服务器端存储那种信息(例如Session),可能在cookie中存在某种键/ id。这样做的一种方法是implement a custom ProfileProvider

存储特定于应用程序的信息(例如您在FormsAuthentication cookie中描述的)的一个缺点是,如果您的应用程序需要从FormsAuthentication切换到某种其他身份验证方法(例如WindowsAuthentication),则需要进行一些重新设计。

就个人而言,我只会在FormsAuthentication cookie中存储与身份验证和可能授权相关的信息,其他任何内容都会increase coupling

答案 1 :(得分:0)

这取决于浏览器的最大cookie长度。 本文可能有所帮助:Browsers Cookie Limit

本文还可以帮助您检查当前的身份验证票证大小: Asp.Net Authentication Ticket Checking