Autenticazione Form - Cookie persistente

martedì 25 luglio 2006 - 18.33

giacomoD Profilo | Newbie

Ciao a tutti,
in ASP.NET 1.1 con la form authentication potevo dare all'utente di salvare il cookie di autenticazione in modo persistente per 50 anni, oppure senza cliccare su "Remember Me" il cookie di autenticazione aveva una durata configurabile.
Capisco che salvare il cookie per 50 anni pone seri problemi di sicurezza, ma ora in ASP.NET 2.0 sembrerebbe che è possibile solamente indicare un unico timeout, che è valido sia per i cookie persistenti, che per quelli temporanei.

Mi chiedo: che senso ha avuto fare ciò? Se voglio dare all'utente la possibilità di riaccedere al sito senza dover rifare il login dovrò in tal modo impostare un timeout molto elevato, però a questo punto non avrò più la funzionalità del cookie temporaneo, ovvero non potrò più far scadere l'autenticazione dopo x minuti che l'utente non interagisce...
Ovviamente vale pure il viceversa, ovvero se voglio la funzionalità del cookie temporaneo dovrò impostare un tomeout basso, e quindi addio cookie persistente...

Se sbaglio chiedo delucidazioni su questa cosa...

Ciao

Giacomo

Ciciu Profilo | Senior Member

Ciao.
Se ho capito bene il problema, Tu hai lo stesso che ho risolto con il prezioso aiuto di David...

http://www.dotnethell.it/Forum/messages.aspx?ThreadID=9221

Ciao - Fabio
Fabio G

us01739 Profilo | Expert

Inserisci queste sezione nel web.config
<authentication mode="Forms">
<forms timeout="26280000"></forms>
</authentication>


L'unico dubbio è sulla grandezza: 50 anni sono circa 26280000 minuti, e non sò se li accetta....

Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

giacomoD Profilo | Newbie

Grazie per le risposte innanzitutto..

Inserendo un timeout ad un valore elevato come da voi consigliato porterebbe ad avere un cookie persistente (se l'utente ha cliccato su "Remember Me") della durata di svariati giorni o mesi, ma causerebbe allo stesso tempo un cookie temporaneo (se l'utente NON ha cliccato su "Remember Me") della stessa durata! Questo vuol dire che l'utente dopo il login deve avere un periodo di inattività pari a quel lasso di tempo per vedersi riproporre la schermata di login, e questo secondo me induce un gran problema di sicurezza.
E' questo il mio disappunto. Io sarei portato ad eliminare dal mio sito di e-commerce la possibilità di avere un cookie persistente in queste condizioni, perchè ciò vorrebbe dire introdurre un problema di sicurezza non trascurabile...

Che cosa ne pensate??
Ciao
Giacomo

us01739 Profilo | Expert

Scusa, non vorrei portarti sulla strada sbagliata, ma perchè nel caso che tu non voglia creare un cockie permanente non utilizzi semplicemente la session del webserver?
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

giacomoD Profilo | Newbie

Ciao us01739,
perchè in tal modo non otterrei quello che mi serve.

Una cosa è l'oggetto Session di ASP.NET, una cosa è avere informazioni relative all'autenticazione. L'oggetto session è completamente slegato dal meccanismo di autenticazione di ASP.NET, è solo un oggetto in memoria del webserver identificabile attraverso il SessionId, che è un identificativo generato per ogni pagina ASPX che supporti le sessioni, indipendentemente se tale pagina è sotto autenticazione o meno. Tale Session ID solitamente viene memorizzato in un cookie per garantire che l'intera sessione del browser utilizzi lo stesso Session ID.
Un'altra cosa invece è il cookie di autenticazione, che viene passato solo a quelle pagine che sono dietro form authentication, ed ha una sua scadenza, indipendente dal cookie di sessione.
Detto questo, capirai che non è buona norma salvare le informazioni di logon in sessione.

Comunque il mio problema è capire come posso fare ad avere un sito web che abbia sia la funzionalità dei cookie di autenticazione permanetenti (com timeout alto ~ giorni) sia quella dei cookie di autenticazione temporanei (con timeout basso ~ minuti), dal momento che questi due timeout in asp.net 2.0 sono diventati lo stesso unico oggetto.

Ciao
Giacomo

us01739 Profilo | Expert

Umhh....
Attendo la risposta di qualche guru perchè interessa anche a me....
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

giacomoD Profilo | Newbie

Ok.
Allora aspettiamo fiduciosi..
Giacomo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5