Sto cercando indicazioni in merito ai cookie in ASP.Net MVC (o semplicemente alla gestione dei cookie in generale). Ho archiviato le informazioni di autenticazione sugli utenti che si autenticano tramite un accesso al modulo in un cookie. Funziona benissimo, ma ora devo memorizzare un po 'più di informazioni nel cookie. Queste informazioni aggiuntive non sono realmente "correlate all'autenticazione", quindi sono riluttante a memorizzarle nel ticket di autenticazione. Esiste una pratica migliore per archiviare informazioni extra. È possibile impostare più cookie (e in tal caso una buona/cattiva pratica)? Altre cose che dovrei prendere in considerazione qui?Buone pratiche dei cookie MVC di ASP.Net
Ecco il codice corrente sto usando per impostare il ticket di autenticazione e avvolgerlo in un 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ì, ho considerato l'utilizzo dello stato sessione SQL Server come alternativa all'approccio cookie. I dati extra che devo memorizzare sono piccoli (probabilmente 20 caratteri), quindi non dovrebbe aggiungere troppi sovraccarichi sul filo o in termini di dimensioni dei cookie. Speravo di evitare l'uso di un database solo per memorizzare queste informazioni aggiuntive, a meno che non sia davvero la pratica migliore, ed è per questo che ho posto la domanda qui. Grazie per il vostro feedback – Paul
se ha solo 20 caratteri, probabilmente non sta facendo alcun danno nel cookie. Se è così piccolo, usare la sessione in proc potrebbe anche essere una buona idea. Forse provare in entrambi i modi e vedere quale è preferibile? –