c# - FormsAuthenticationTicket.UserData 属性的最大长度

标签 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 字节。

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

谢谢

最佳答案

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

您可以在服务器端(例如 Session)存储此类信息,可能在 cookie 中使用某种 key /id。这样做的一种方法是 implement a custom ProfileProvider .

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

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

关于c# - FormsAuthenticationTicket.UserData 属性的最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7344110/

相关文章:

c# - 通过捕获MouseUp和MouseMove(拖动和绘制图像)在PictureBox中的图像上绘制图像

c# - 在 .net Web 浏览器控件中突出显示文本

c# - JQuery Ajax WebMethod 返回一个对象

c# - 无法在 ASP.NET 中将数据导出到 XML - 数据导出到 HTML 而不是 XML

c# - MySQL Entity Framework 按日期分组和选择

c# - 加载后面的代码后加载javascript代码

asp.net - 控件示例按钮的命令名称和命令参数的目的是什么?

c# - FormsAuthenticationTicket 过期

forms-authentication - 授权时 ASP.NET MVC5 应用程序抛出 NullReferenceException

ASP.NET、登录控制、身份验证、https/ssl、cookie 路径