11

我实现一个自定义标识类的ASP.Net 4.0网站与窗体身份验证基于此教程的最大长度:
Forms Authentication Configuration and Advanced Topics
FormsAuthenticationTicket.UserData物业

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

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

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

感谢

回答

6

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

您可以将该类信息存储在服务器端(例如会话),可能在Cookie中存储某种类型的密钥/ ID。做到这一点的一种方法是implement a custom ProfileProvider

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

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