11

Me estoy poniendo en práctica una clase de identidad personalizada para un sitio de ASP.Net 4.0 con la autenticación de formularios basados ​​en este tutorial:
Forms Authentication Configuration and Advanced Topics
Longitud máxima de la propiedad FormsAuthenticationTicket.UserData

me gustaría para almacenar información de usuario adicional (Primera/Apellido, género, región geográfica, nombre de archivo miniatura de imagen de perfil, etc. ...) en AuthCookie. Hay una advertencia en msdn.microsoft.com sobre la limitación del tamaño de la propiedad UserData.

No he podido encontrar un límite de caracteres definitivo para la propiedad UserData. Solo que toda la cookie cifrada debe tener menos de 4096 bytes.

¿Alguien sabe un límite de caracteres máximo que debería asumir en mi código? ¿O tiene una mejor idea sobre cómo almacenar estas piezas de información de usuario que se necesitan con frecuencia?

Gracias

Respuesta

6

No hay límite explícito - el tamaño máximo dependerá, por ejemplo, de la longitud del nombre de usuario. Además, el tamaño máximo de una cookie (o de una URL si usa tickets sin cookies) depende del navegador.

Puede almacenar ese tipo de información del lado del servidor (por ejemplo, Sesión), posiblemente con algún tipo de clave/ID en la cookie. Una forma de hacerlo sería implement a custom ProfileProvider.

Una desventaja de almacenar información específica de la aplicación como la que describe en la cookie FormsAuthentication es que necesitará algún rediseño si su aplicación necesita pasar de FormsAuthentication a algún otro método de autenticación (por ejemplo, WindowsAuthentication).

Personalmente, solo almacenaba información relevante para la autenticación y posible autorización en la cookie FormsAuthentication, como cualquier otra cosa sería increase coupling.

Cuestiones relacionadas