34 messaggi dal 12 novembre 2006
Ciao Ragazzi,
mi rivolgo ai templari dell'asp :
ho un problema con la session che nn riesco a risolvere:
ho una pagina con login riservata ; la pagina dopo aver inserito user e pwd viene controllata da un'altra pagina asp che reindirizza alla pagina gestione
così strutturata:

PAGINA VERIFICA ACCESSO E CREAZIONE SESSION:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Dim nome_ut
Dim pass
nome_ut = Replace(Request.Form("cmputente"), "'", "''")
pass = Replace(Request.Form("cmppassword"), "'", "''")

'controllo dei campi vuoti
'if nome_ut <> "" and pass <> "" then

Dim cn
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("nomefile.mdb")
Dim sql
sql = "SELECT ID FROM Utente WHERE tblutente='" &nome_ut&_
"' AND tblpassword='" &pass& "'"
Dim rs
Set rs = cn.Execute(sql)

Dim autenticato
if rs.eof then
autenticato = false
else
autenticato = true
end if
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing

'else
'response.Redirect("errorepassword.asp")
'end if
%>

<%
if autenticato = true then
Session("Autenticato") = "OK"
Response.Redirect("gestione.asp")
Response.Expires = -1
else
Response.Redirect("errorepassword.asp")
end if
%>

Poi nella pagina gestione.asp che sarebbe quella che viene visualizzata con l'apertura della session e che nn dovrebbe essere vista più dal browser se nn autentico ho scritto in alto:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%
if Session("Autenticato")<>"OK" then
Response.Redirect("paginariservata.asp")
Response.Expires = -1
end if
%>
.......
......
.......



Inoltre nn funziona nemmeno il logout della session:
in questa pagina gestione.asp come devo scriverlo per uscire con il logout
aiutatemi vi prego? Uso ie7 come browser
Grazie in anticipo e spero mi rispondiate ASAP
Saluti
Lallo
Ciao allora provo a risponderti in modo completo:

Le variabili di sessione in asp NON funzionano se i cookies sono disabilitati. So che sembra un forte controsenso, ma è cosi per tale motivo verifica che nell tuo browser non siano stati disabilitati i cookie.

L'utilizzo delle session richiede quindi la disponibilità da parte del browser dell'utente di ricevere i cookies,perchè appunto si basano su di essi ;per tale motivo senza di essi le session non possono esistere.

Vedi questo articolo:
http://www.aspitalia.com/articoli/session.aspx

Per superare questo limite leggi anche questo articolo interessante:
http://www.aspitalia.com/articoli/asp.net/filesession-p-3.aspx

Pui usare ISAPI(Internet Server Application Programming Interface) scaricabile dal sito della Microsoft e permette di fornire funzionalità aggiuntive sulla macchina server sul quale lo installi e ti permette di usare le Session senza i cookie.

Tornado al tuo esempio:
Una sessione viene terminata o scade se un utente non ha richiesto altre pagine o non ha effettuato il refresh entro un determinato intervallo di tempo.
Generalmente come impostazione definita questo tempo è di circa 20 minuti,per tale motivo se vuoi cambiare questa impostazione fai:
<%Session.Timeout=120%>

Verifica questa proprietà.

Per il log-out potresti fare cosi per esempio:


<%
  'Log out

  Session("Collegato") = False
  Session("Utente") = False
  Session("UserID") = ""
  Response.Redirect "default.asp"
  
%>


e puoi "abbandonare"/"liberare" tutte le sessioni cosi:
<%  Session.abandon %>


Cioè cancelli contenuto delle variabili di sessioni e poi rimandi l'utente alla pagina principale

Mentre per il login potresti fare cosi, cioè se la session è vuota lo rimandi alla pagina del login, se non verifica altre codizioni lo rimandi alla pagina di default altrementi può visualizzare le informazioni della pagina.

  If session("Utente") = False Then
    Response.Redirect "login.asp"
  End If

  If session("Collegato") <> True Then
    Response.Redirect "default.asp"
  End If


Infine prova a verificare se utilizzi correttamento l'oggetto Response.Expires
http://asp.html.it/guide/lezione/2012/oggetto-response-expires/

In clonclusione ti faccio alcune domande:
Se provi quello che hai fatto su un'altro browser ti funziona?
In definitiva cosa esattamente non funziona?

Ciao Marco
Modificato da maltra il 20 settembre 2008 14.04 -
Modificato da maltra il 20 settembre 2008 14.05 -
Modificato da maltra il 20 settembre 2008 14.15 -

Corso SEO DeepSEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
34 messaggi dal 12 novembre 2006
Ciao Marco,
gtrazie per aver risposto....

...allora da come mi stai dicendo ho scritto tutto bene....giusto?
nn ci sono errori di codice o migliorie da fare per una maggiore protezione?

quello che nn va è che se io entro nella pagina gestione dopo aver effettuato il login user&pwd e copio e incollo questa pagina in un'altra finestra del browser mi apre la stessa pagina senza reindirizzarmi alla pagina introduttiva per il login come mai?

quando scrivi:
<%Session.Timeout=120%>
cosa intendi sono 120 minuti?
vorrei abbassare a 10 minuti di inattività come e dove scriverlo nel mio codice?


per il logout devo creare nella pagina gestione un link ad una nuova pagina asp e scrivere solo questo?:
<%
'Log out

Session("Collegato") = False
Session("Utente") = False
Session("UserID") = ""
Response.Redirect "default.asp"

%>


<% Session.abandon %>

così va bene???

Inoltre scusa se ti chiedo questo ma potresti farmi l'esempio della session sul codice che ho inserito così rirpovo a scrivere tutto;
ti ricordo che ho una pagina login.asp
che punta ad una pagina di verifica (con database) dove inizia a creare la session cosi:
.....
....

<%
if autenticato = true then
Session("Autenticato") = "OK"
Response.Redirect("gestione.asp")
Response.Expires = -1
else
Response.Redirect("errorepassword.asp")
end if
%>

......
.....

e poi se la user e pwd vanno bene punta alla pagina gestione.asp
e in questa c'è la verifica della session così scritta:
.....
.....
<%
if Session("Autenticato")<>"OK" then
Response.Redirect("paginariservata.asp")
Response.Expires = -1
end if
%>

.....
.....

Altra domanda ma il
Response.Expires = -1
va bene posizionato lì ed anche nella pagina di verifica password?
Grazie
Saluti
Lallo
Elimina un post è inutile aprirne due scrivi solo su questo. ok?

Se vuoi abbassare a 10 minuti metti
<%Session.Timeout=10%>

Per le altre risposte domani rileggo con calma quello che hai scritto ,ma se prima fai il redirect e dopo Response.Expires = -1 non dovrebbe essere eseguito.

Non posso scriverti io il codice , con i links che ti ho postato e con il codice che ti ho fatto vedere prova te.

Appena ho più tempo provo a dare un'occhiata a quanto mi hai detto, fai un po di prove e leggiti bene le guide ok?

Ciao buona domenica

Corso SEO DeepSEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
34 messaggi dal 12 novembre 2006
ok provo e ti faccio sapere
asprtto tue notizie più dettagliate
Grazie
Saluti
Lallo
Allora,
io farei una cosa del genere:
Una pagina di ckLogin.asp dove verifichi che l'utente sia autenticato (amministratore/utente) e lo includi in tutte le pagine che richietono un accesso autenticato cosi es:

<!--#include file="include/ckLogin.asp"-->


Nella tua pagina di log-out metterai il codice per eliminare i valori presenti nella sessione e rimandi ad un'altra pagina.

Mentre nella pagina di log-in popolerai in maniera correatta le tue variabili di sessione.

Qui puoi trovare un'esempi completo di log-in.

http://www.lukeonweb.net/243.asp

Fammi sapere , buona serata
Marco

Corso SEO DeepSEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
34 messaggi dal 12 novembre 2006
Ciao Marco,
proverò e ti farò sicuramente sapere;
ho un'altra piccola questione;

premetto che sto lavorando in localhost (nn so se può pregiucare in qualche modo il funzioanmento) ma nn credo

nella pagina gestione.asp ho inserito un link alla pagina logout.asp
scrivendo:

<body>

<%
Response.Expires = -1500
'abbandona tutte le sessioni cosi:
Session.abandon %>
<%
'Log out

Session("Autenticato") = False

Response.Redirect("pricipale.asp")

%>
</body>

mi funziona tutto nel senso che va alla pagina principale per il login
ma se torno indietro con il bottone del browser mi ritorna nella pagina gestione anche se so che cliccando su aggiorna funziona;
però io vorrei che anche tornando indietro con il bottone del browser nn mi faccia vedere più la pagina della gestione
come posso fare?

Saluti
Lallo

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.