27 messaggi dal 26 maggio 2003
Buongiorno a tutti!!!

Vorremmo sapere se è possibile impostare il Timeout con un certo valore e, quando questo scade richiamare la pagina del Logout.

Grazie a tutti!!!!

Donatella Ilari
167 messaggi dal 19 marzo 2002
Session.Timeout = 5 (espresso in minuti)
passare direttemente al Logout quando scade la Session mi sembra dura...potreste inventarvi un parametro di sessione
session("login")=1
e mettere in tutte le pagine dell'applicazione un paio di righe di codice

if session("login")<>1 then
response.redirect "logout.asp"
end if

in modo tale che cercando di navigare una volta scaduta la sessione l'utente viene sparato alla pagina che interessa a voi

carpe diem, quam minimum credula postero
512 messaggi dal 30 maggio 2002
Puoi impostare alcuni eventi nel Session_OnEnd() del global.asa ma non certo un redirect verso un'altra pagina.

se sapessero cosa penso sarei già morto...
74 messaggi dal 06 maggio 2001
Premesso che di programmazione ASP conosco poco, risollevo questa vecchia discussione con un problema che ho siscontrato.
Il codice del global.asa è questo:

<script language="VBScript" runat="server">

sub application_OnStart
'application("timeout") = 1
application("conn_string") = "FILEDSN=c:\inetpub\wwwroot\sviluppo\dsn\Sviluppo.dsn"
session.Timeout = 1
end sub

sub Session_OnStart
session("login") = 1
end sub

sub Session_OnEnd
session("login") = 0
end sub

</script>

In teoria dovrebbe settare il timeout ad un minuto (per fare le prove) e sembra che lo faccia perchè se stampo la variabile session("logout") mi da 1. Fino a quì tutto OK, il problema arriva quando dovrebbe scadere la sessione. Se rimango più di un minuto fermo in una pagina e faccio il refresh il valore di session("login") rimane sempre 1. L'evento OnEnd dovrebe lanciarlo da se quando scade il timeout o no?
Il codice che ho messo nelle pagine per verificare se la sessione è sempre a ttiva è quello postato da dario75 poche righe sopra.
Aiutatemi vi prego!!!
879 messaggi dal 09 luglio 2002
www.i-studio.it
E' un po' un cane che si morde la coda...
Il codice che hai creato tu fa in modo che ogni volta che viene attivata una Sessione viene settata la variabile Session("login") = 1.
Quindi, questa associazione avviene quando un utente semplicemente si collega alle tue pagine.
Dopo un certo tempo (a proposito, non so il perche' ma mi pare che il timeout a 1 minuto non funziona bene... credo che devi impostarlo almeno a 2 min. per avere gli effetti sperati), la sessione scade e quindi il valore della variabile Session("login") viene impostato a 0.
Ma se fai un refresh della pagina automaticamente crei una nuova sessione e quindi il valore di Session("login") torna ad essere = 1....
Non so se sono stato chiaro...
Se il tuo scopo e' quello di far eseguire un login all'utente e rimandarlo alla pagina di logout quando scade la sessione dovresti seguire quest'altro sistema:

1) l'utente passa per una pagina di default (ad es. login.asp)
2) in questa pagina effettua il login (magari inserendo un codice ed una password)
3) nello script dove effettivamente verifichi se l'utente puo' accedere, se tutto e' a posto, imposti una variabile di Sessione con un valore che vuoi tu (ad es. Session("autenticato") = 1)
4) in tutte le pagine successive (quindi quelle che devono essere protette) metti in testa un controllo di questo genere:
if Session("autenticato") <> 1 then
response.redirect("login.asp")
response.end
end if


In questo modo, il valore di Session("autenticato") non viene settato automaticamente a 1 ad ogni accesso (come avevi fatto tu), ma solo dopo che l'utente ha effettivamente eseguito il login. Quando la sessione di un utente scade, la variabile Session("autenticato") viene distrutta. Quindi, l'if che metti in tutte le pagine rimanda l'utente alla pagina principale.

Spero di esserti stato d'aiuto

Ciao
Alex

Internetworking Studio Srl
www.i-studio.it
74 messaggi dal 06 maggio 2001
Chiarissimo, grazie mille!
Quindi facendo come hai detto tu non ho bisogno di mettere gli eventi session_onstart e session_onend nel global.asa giusto?
879 messaggi dal 09 luglio 2002
www.i-studio.it
Esatto! Anche perche' nel Session_onstart potresti anche mettere un settaggio per una variabile di sessione (ad es. potresti definire che nel Session_OnStart Session("autenticato") vale 0); ma nel Session_OnEnd non ha molto senso perche' il Session_OnEnd scatta allo scadere di una sessione e quindi se all'interno di quella subroutine tu assegni qualche valore ad una variabile di Sessione e' come se stessi creando una nuova Sessione...
Sarebbe come fare un "loop" infinito...

Ciao
Alex

Internetworking Studio Srl
www.i-studio.it
74 messaggi dal 06 maggio 2001
Grazie mille, funziona!!!
Ne approfitto per farti una domandina semplice.
l'impostazione del session.LCID posso farla una sola volta, magari appena autenticato l'accesso, perchè è sempre una variabile di sessione vero?

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.