18 messaggi dal 05 settembre 2003
grazie x la risposta e la disponibilità
adesso ci studio un po su
ciao
Vostok3
18 messaggi dal 05 settembre 2003
Ciao a tutti e ciao Alex

ho fatto questo

...
Sub Session_OnEnd
...
Application("Users") = Replace( Application("Users") , Session("utente") & "|" ,"|")
...
End Sub

gli faccio il replace con lostesso carattere

printando si ha |||||||||andrea|luca ecc

Alla fine se l'utente fa il log off il nome viene tolto, altrimenti affari suoi e rimane attivo fino a che non scade la sua session (10 minuti).

Nela paginetta dove mostro lo spit della var di sessione al posto di <br> ci metto uno spazio " " e il gioco è fatto.

risultato andrea luca giorgio ecc

in html luca andrea giorgio si prende gli spazi ma a video non li vedi percio ok :-)

Una cosa però vorrei che mi dicessi.

Dopo es 1 mese nella mia var di sessione ci saranno una sfilza di caratteri |||||

può fare casini?
grazie
ciao
18 messaggi dal 05 settembre 2003
rettifica non nella var di sessione ma nella var di applicazione ci saranno i caratteri |||||||||

ciao:-)
879 messaggi dal 09 luglio 2002
www.i-studio.it
Si, in effetti con questo sistema la tua var di Application conterra' sempre piu' |...
Poi, non mi pare che cosi' risolvi il controllo degli accessi...

Tu fai questa replace:
Application("Users") = Replace( Application("Users") , Session("utente") & "|" ,"|") 

Ora, se ad esempio l'utente "Mario" e' connesso, la stringa Application("Users") contiene il nome di questo utente, giusto? Se Mario clicca sul bottone "Logout" allora tutto funziona correttamente; se invece fa scadere la Sessione (o semplicemente chiude il browser e se ne va), quando scatta l'evento Session_OnEnd, la variabile Session("utente") non contiene piu' il valore "Mario" (proprio perche' e' scattato l'evento di fine sessione e quindi tutte le var di Sessione vengono eliminate) e quindi la Replace in pratica fa questo:
Application("Users") = Replace( Application("Users") , "|" ,"|")

Cioe' non fa nulla...
Pero' la Application("USers") contiene ancora la stringa "MArio" e quindi, quando questo utente tentera' di accedere nuovamente gli negherai l'accesso perche' il suo nome sara' ancora nella var di Application... giusto?
Allora, io ti suggerisco un sistema che ho usato un po' di tempo fa in un'altra applicazione:
quando un utente entra nel sistema, memorizzo in un Dictonary che memorizzo in una var di Application la coppia nome_utente e ora_corrente. Poi, ogni volta che l'utente si muove tra le pagine, aggiorno questo orario. Ora, se l'utente se ne va correttamente, cancello il nominativo dal Dictonary e tutto funziona correttamente; se invece se ne va in modo "scorretto" non faccio nulla. Quando poi tenta di rientrare nel sistema, controllo se il suo nominativo esiste nel Dictionary: se non esiste, lo faccio passare senza problemi; se esiste controllo l'orario che e' associato al suo nominativo. Se questo orario e' maggiore del timeout di sessione, significa che l'utente se ne e' andato e ora vuole rientrare; se e' inferiore, significa che quell'utente e' ancora connesso.

Che ne dici?

Ciao
Alex

Internetworking Studio Srl
www.i-studio.it
18 messaggi dal 05 settembre 2003
ciao alex

secondo me invece funziona tutto. se uno non si slogga correttamente dopo 10 minuti nella var di applicazione non c'è + il suo nome.
l'ho verificato con il mio utente

Il sistema che mi dici tu è senza dubbio valido.

cmq ora riverifico

ciao alex

vostok3

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.