11

Io sono l'attuazione di una classe personalizzata di identità per un 4.0 sito ASP.Net con autenticazione basata su form in base a questo tutorial:
Forms Authentication Configuration and Advanced Topics
lunghezza massima FormsAuthenticationTicket.UserData proprietà

Vorrei memorizzare le informazioni dell'utente extra (First/Cognome, Sesso, Regione geografica, Immagine del profilo, Nome file, ecc ...) in AuthCookie. C'è un avviso su msdn.microsoft.com sulla limitazione della dimensione della proprietà UserData.

Non sono stato in grado di trovare un limite di caratteri definitivo per la proprietà UserData. Solo che l'intero cookie crittografato deve essere inferiore a 4096 byte.

Qualcuno conosce un limite massimo di caratteri che dovrei assumere nel mio codice? O hai un'idea migliore su come conservare queste informazioni utente necessarie di frequente?

Grazie

risposta

6

Non c'è limite esplicito - la dimensione massima dipenderà, ad esempio, sulla lunghezza del nome utente. Anche la dimensione massima di un cookie (o di un URL se stai usando biglietti senza cookie) dipende dal browser.

è possibile memorizzare questo genere di informazioni lato server (ad esempio sessione), possibilmente con un qualche tipo di chiave/id nel cookie. Un modo per farlo sarebbe quello di implement a custom ProfileProvider.

Uno svantaggio di archiviare informazioni specifiche dell'applicazione come descritto nel cookie FormsAuthentication è che sarà necessario riprogettarlo se l'applicazione deve passare da FormsAuthentication a qualche altro metodo di autenticazione (ad esempio WindowsAuthentication).

Personalmente memorizzerei solo le informazioni rilevanti per l'autenticazione e possibilmente l'autorizzazione nel cookie FormsAuthentication, come qualsiasi altra cosa sarebbe increase coupling.