Estoy buscando alguna orientación con respecto a las cookies en ASP.Net MVC (o simplemente manejo de cookies en general). He estado almacenando información de autenticación sobre usuarios que se autentican mediante un inicio de sesión de formulario en una cookie. Esto funciona muy bien, pero ahora necesito almacenar un poco más de información en la cookie. Esta información adicional no es realmente "relacionada con la autenticación", por lo que dudo en almacenarla en el ticket de autenticación. ¿Existe una mejor práctica para almacenar información adicional? ¿Es posible establecer varias cookies (y si es así, una buena/mala práctica)? ¿Otras cosas que debería considerar aquí?ASP.Net MVC Cookies Mejores prácticas
Aquí está el código actual que estoy usando para establecer el vale de autenticación y se envuelve en una cookie:
private HttpCookie GetAuthCookie(AuthToken authToken)
{
var authTokenXml = serializationService.Serialize(authToken);
var authCookieString = FormsAuthentication.Encrypt(
new FormsAuthenticationTicket(
0,
Keys.AuthToken,
DateTime.Now,
DateTime.Now.AddMinutes(AppSettings.SessionTimeoutMinutes),
true,
authTokenXml));
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, authCookieString)
{
Expires = DateTime.Now.AddDays(AppSettings.AuthCookieExpireDays)
};
return cookie;
}
Sí, he estado considerando usar el estado de sesión del servidor SQL como alternativa al enfoque de cookies. Los datos adicionales que necesito almacenar son pequeños (probablemente 20 caracteres), por lo que no debería agregar demasiada sobrecarga en el cable ni en términos de tamaño de la cookie. Esperaba evitar el uso de una base de datos solo para almacenar esta información adicional, a menos que sea realmente la mejor práctica, y es por eso que hice la pregunta aquí. Gracias por sus comentarios. – Paul
si solo tiene 20 caracteres, probablemente no esté haciendo ningún daño en la cookie. Si es así de pequeño, usar la sesión de proc también podría ser una buena opción. Tal vez intente de ambas formas y vea cuál es preferible. –