Originariamente inviato da agenti
tu dici:
Ho previsto nel db un campo chiamato IDUser nel quale memorizzo l'ID generato dal campo contatore della tabella;
quindi dovrai creare un recordset ogni volta per paragonare il tuo cookies con il valore del campo iDuser...
No, non mi sono spiegato:
1) Al momento della registrazione di un nuovo utente all'area riservata del sito, oltre a registrare nella tbl "codici" del DB Access i classici dati richiesti (generalità, email città, etc), memorizzo l'ID generato dal campo contatore - chiave primaria nel campo IDUser della stessa tabella codici; supponiamo che si registra l'utente Giancarlo il cui IDUser sarà il 67;
2) L'utente Giancarlo si logga, ne controllo i dati:
codice:
SET objRS = Server.CreateObject("ADODB.Recordset")
objRS.ActiveConnection = cn
strSql = "SELECT * FROM codici WHERE userName='"&strUser&"' AND userCode='"&strCode&"'"
objRS.Open strSQL
' se non esiste chiudo tutto
IF objRS.EOF THEN
ChiudiDB()
Response.Redirect "logon.asp?referer=" & strReferer
' altrimenti genero il cookie con scadenza 1 ora
ELSE
Response.Cookies("accesso")("valido")="ok"
Response.Cookies("accesso").expires = DateAdd("n",60, Now())
Response.cookies("accesso")("nome")=objRS("UserID")
Session("user") = Request("user")
Session("UserID") = objRS("UserID")
La session("UserID") a questo punto conterrà il valore 67.
3) controllo la validità del cookie nelle pagine protette:
codice:
<%
response.expires = -1500
response.AddHeader "PRAGMA", "NO-CACHE"
response.CacheControl = "PRIVATE"
If request.cookies("accesso")("valido")<>"ok" Then %>
<script>
window.open("password.asp?referer=<%=Request.ServerVariables("URL")%>","nomeFinestra","top=250,left=350,width=300,height=250");
</script>
<%
Response.End
End If
%>
Come potrai vedere apro la connessione al DB, inizializzo il rs, eseguo la query soltanto una volta al momento del login utente.
Se non ho capito male ciò che vuoi realizzare prevede:
1) una query per la verifica dei dati utente (login e password);
2) creazione di una session.sessionID con memorizzazione nel cookie e nel db;
3) riverifica dei dati utente ;
4) query di update per aggiornare la session.sessionID
In tutta sincerità mi sembrano passaggi ridondanti, però se ti piace così sei "padronissimo" di procedere come meglio ritieni opportuno...
qui si danno consigli ed indicazioni, ma non si impone mai la propria metodologia di lavoro...