Newsgroup: it.comp.www.asp
Titolo: [OT] Oggetto Session

Esiste un'oggetto di tipo Session. Se non sbaglio questo viene creato non
appena accedo al sito.
Nel global.asa posso settare una variabile ad esmpio
Sub OnSession_Start
    Session("User") = ""
End Sub
Come faccio a settarla di nuovo non appena esco dal sito????
In poche parole ogni volta che mi connetto al sito mi deve chiedere la user,
anche senza chiudere ogni browser che ho aperto.
Grazie a tutti
pace Beddy
P.S.: Spero di essere stato chiaro

anche senza chiudere ogni browser che ho aperto.
il problema e' capire *quando* esci dal sito, essendo http un
protocollo stateless dove ogni richiesta e' indipendente dalle altre,
l'unco modo per mantenere una sessione e' usare i cookies (come fa
l'oggetto session) o passare l'id sessione come parte dell'url.
dalla documentazione ms:
The Web server automatically creates a Session object when a Web page
from the application is requested by a user who does not already have
a session. The server destroys the Session object when the session
expires or is abandoned. 
quindi con l'oggetto session gli unici modi per "uscire" dal sito sono
aspettare che la sessione vada in timeout o caricare una pagina che
contenga il metodo session.abandon
il timeout della sessione si imposta in minuti cosi':
Session.Timeout [ = nMinutes] 
[~ federico 'pix' feroldi ~ 
p...@numerica.it
 ~]
[~ 
http://www.logicom.it/pix
 - ICQ #6541674 ~]

ok grazie era quello che temevo, io volevo lasciare un timeout alto in modo
che non scadesse mai, pero' quando uno abbandonava il sito, venga scatenato
l'evento abandon.
Non esiste magari un evento opposto all' "onLoad" ??? Magari posso fare una
cosa simile, no???
Grazie ancora
pace Beddy



il problema sta nel capire quando l'utente abbandona il sito...
non e' come una pagina singola che l'unload avviene quando l'utente
cambia pagina, durante una sessione l'utente puo' caricare le pagine
che vuole, il serve non puo' sapere se l'utente se n'e' andato...
l'unico modo potrebbe essere quello di fare qualcosa su tutte le
pagine (un javascript o un'applet java) che venga attivato dall'evento
di unload della pagina e "avverta" il server che l'utente ha lasciato
il sito, ma mi sembra una cosa abbastanza macchinosa...


ok ti ringrazio parecchio
pace Beddy


                        Sys Admin di 
http://www.ipoint2000.net
                        Moderatore di it.comp.www.asp
ASP e web design 
http://www.alpha.it/bokdan
Tutto sulle ASP 
http://www.ipoint2000.net/aspoint/

sbaglio) che fa eseguire codice quando l'oggetto session scade.
aiai daniele, non seguivi =) come dicevamo appunto questo evento viene
sparato quando "scade" la sessione dopo un tempo configurabile, ma
puo' darsi che l'utente se ne sia "andato" ancora prima, nel senso che
col suo browser abbia caricato una pagina fuori dal sito. il problema
e' che in questo caso dev'essere il client ad avvertire il server di
questo fatto...


questo fatto...
Quello e' il problema minore, basta far passare gli URL da un filtro ad
esempio dovevai.asp?URLdacaricare
dovevai.asp controlla l'URL, se e' interno tutto a posto, fa un redirect. Se
e' esterno chiude la session e fa il redirect.
Se invece chiudi il browser il server non se ne accorge.
Saluti.
Stefano.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Moderatore di it.comp.www.asp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Se invece chiudi il browser il server non se ne accorge.
il "problema" e' appunto beccare quando l'utente digita un nuovo url
nella location... =)


nella location... =)
Forse usare un javascript?
So che ci sono siti che quando chiudi la finestra o vai altrove ti aprono
una nuova finestra per chiederti se sei sicuro.
Si puo' aprire una finestra minuscola (Si' puo' fare a zero) che carica la
pagina di chiusura della session che continene anche un codicillo che chiude
la nuova finestra appena aperta.
E se cade la linea?


Dove sono sti siti???
pace Beddy

E se cade la linea?
e se cade un meteorite sul server?


>Dove sono sti siti???
Ne ho visto navigando.Su 2 piedi non ricordo ma se chiedi in un gruppo
specifico di Java o JS penso che potranno aiutarti.
Saluti.
Stefano.

Pensandoci bene si potrebbe anche fare una cosa molto semplice.
Metti un frame invisibile che ricarica ogni minuto una pagina vuota e metti
l'expire per la session a 2 minuti.
O forse non ti serve comunque per il lavoro che vuoi fare tu.


e se cade un meteorite sul server?
Penso che in questo caso tu debba preoccuparti di altro piuttosto che della
Session.


questo fatto...
allora, chiariamo un po' di cose. Scusate per il ritardo, ma sono stato
fuori...
l'oggetto session scade dopo tot minuti di inattività. Non deve essere
nessun client a comunicare nessuna cosa a nessun server. Semplicimente, IIS
tramite l'applicazione ISAPI ASP controlla a quanto risale l'ultimo accesso,
e nel caso il tempo sia maggiore di quello specificato, cancella i dati. Se
ti capita di collegarti su un sito che fa uso di ASP e di session, andare
altrove e tornare prima che la session scada, vedrai che troverai gli stessi
dati.
Quindi non si deve comunicare niente, è tutto automatico. altrimenti sarebbe
stato anche poco utile...
