Session, Application e affini

domenica 08 ottobre 2006 - 15.08

nullatore Profilo | Junior Member

Salve a tutti. Data la mia piccola esperienza nel settore vorrei chiedere un parere su come ho risolto il problema dell'accesso ad una sezione privata di un sito.

Mi sono avvalso della <session> e dell' <application>. Questo è il flusso logico:

-utente effettua il login->Istanzio un valore nella session che mi indica l'utente loggato, il quale sarà anche il discriminante per fare vedere le pagine interne-> Istanzio un valore nell'application che mi indica che l'utente è attualmente on line. Quest'ultimo viene usato anche per non far accere contemporaneamente piu' utenti con lo stesso login.

->imposto un timeout della session ad un minuto, che permetta allo sbadato che ha chiuso il browser senza fare il logout (o nel caso di problemi di connessioni) di potersi rilogare dopo brevissimo -> contemporanemente ho creato un frame nascosto che parte una volta che si è loggati affinche' tenga viva la sessione (un minuto è pochissimo per chi lavora dentro la sezione privata del sito)
-> nel session_end cancello dall'<application> l'utente che ha perso la sessione (volontariamente o non)
Il tutto sembrerebbe funzionare. Ma non so se sto facendo una pecionata, se ci sono controindicazioni e se è sicuro un approccio del genere.

Aggiungo anche una manciata di domande:
-il frame che ho aggiunto per mantere viva la session contiene una pagina autoaggiornante (tramite script js). Questo trucco funziona (ovvero mantiene viva la session) solo se al suo interno viene ciclicamente ricaricato un file .aspx ,mentre non funziona con un .htm (nonostante siano entrambi vuoti). Sapete spiegarmi il perche?
- ho letto che il timeout della session puo' non coincidere con il timeout del cookie. Ma allora non basta settare il timeout della session nel web.config?
- Avrei potuto lasciare un timeout della session alto (ad esempio 20 minuti), quindi senza dover utilizzare il trucco per manterla viva e che mi permetta pero' di poter riaccedere alla sezione privata (nel caso l'utente abbia chiuso il browser o la connessione) prima di quei 20 minuti? (ricordo che un login implica l'aggiunta dell'utente all'application, dal quale non si viene cancellati prima della scadenza della session)

Grazie mille.

nullatore Profilo | Junior Member

>Visto che hai postato nella stanza di asp.net 2.0 perchè non
>usi la nuova autenticazione e gestione degli utenti?
>
>In questo modo elimini:
>frame che non devo essere più usati(sono stati deprecati dal
>w3c)
>session che non è scalabile(se non usata tramite sql server)
>snellisci la tua applicazione
>
>-------------

Grazie per il consiglio. Mi aggiornerò sul nuovo sistema...anzi se hai da linkare qualche cosa a riguardo.
Per ora quello che ho fatto puo' funzionare?

Ciao
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