Newsgroup: it.comp.www.asp
Titolo: [Difficile] Simulare le session con i cookies disabilitati

Salve a tutti!
E' da giorni che sto impazzendo cercando di trovare uno script che possa
aggirare il problema dell'impossibilità di usare le session quando l'utente
ha i cookies disabilitati.
Preciso che mi serve per un circuito di rotazione banner interno, quindi non
ho la possibilità di usare molte soluzioni spesso adottate in questi casi
(come passare l'ID della session tramite la querystring e così via)... :(
L'obiettivo è evitare che venga mostrato uno stesso banner per più di una
volta per pagina, quindi lo script dovrà essere in grado di riconoscere se
(avendo per esempio due banner) i due codici vengono richiamati dallo stesso
utente.
Ora, non avendo a disposizione le session, la prima cosa che mi viene in
mente per "riconoscere" l'utente è di memorizzare alcuni dati in una tabella
del DB. Premetto che ho molti dubbi riguardanti le prestazioni (non che le
session siano più leggere, ma così facendo raddoppio la mole di lavoro del
DB), comunque l'ultima soluzione trovata è la seguente:
1- L'utente apre la pagina; viene richiamato il codice del banner per la
prima volta: tutto in regola, lo script lavora normalmente ma memorizza nel
DB l'indirizzo della pagina e l'IP dell'utente.
2- Continua il caricamento della pagina; il codice del banner viene
richiamato per la seconda volta (per il banner alla fine della pagina): il
codice controlla nel DB qual'è l'ultimo IP che ha visualizzato il banner
nella stessa pagina;
3- Se l'IP coincide l'utente è lo stesso quindi si può agire di conseguenza
(es.: si memorizza anche l'ID dell'ultimo banner visualizzato e si evita di
visualizzare lo stesso banner); se l'IP è diverso il codice lavora
normalmente.
In questo modo, tralasciando la scarsa qualità della soluzione, si può
riconoscere l'utente sino a quando non inizieranno ad esserci diverse
connessioni contemporaneamente (in tal caso non servirebbe più perchè
potrebbero esserci diversi download contemporaneamente)... sono comunque il
primo a dire che questa soluzione è alquanto penosa! :(
Sto cercando altre vie, ma sono un po' bloccato... spero in un qualche
consiglio da parte vostra per migliorare questa o altre soluzioni (nella
speranza che ce ne siano altre)!
Se trovo qualcos'altro vi fo' sapere... nel frattempo vi ringrazio per aver
avuto la pazienza di leggere fino in fondo :D
A presto!
Stefano.

 utente.
Se non hai un numero enorme di utenti contemporanei puoi salvare a livello
di application (quindi nella memoria del server) la coppia [IP,codice ultimo
Banner].
Qundo un utente chiama lo script del banner, questo controllerà se esiste
una coppia in memoria con l'IP del richiedente; se non c'è ne creerà una
nuova e invierà il primo banner, altrimenti saprà quale banner è stato
richiesto da quell'IP l'ultima volta, quindi ne manderà uno diverso (per
esempio incrementando di uno il codice banner).
Il processo funzionerebbe anche in presenza di più utenti
contemporaneamente, ma darebbe qualche problema con molti utenti che usano
lo stesso proxy o gateway (raro).
Per creare le coppie e ritrovarle ti consiglio l'oggetto
"Scripting.Dictionary", grazie al quale non sei costretto ad eseguire una
ricerca lineare nell'insieme delle coppie.
Presta attenzione però alla quantità di memoria occupata al crescere delle
coppie e non dimenticare di eliminare quelle più vecchie.
Saluti,
Luca Barbetta kck/skd

 coppie e non dimenticare di eliminare quelle più vecchie.
Si chiaramente... spero in un vostro chiarimento per quanto riguarda i
limiti delle Application in termini di prestazioni, non mi è mai capitato di
utilizzarle quindi non ho avuto modo di informarmi/testarle... :\
Comunque grazie mille, mi sei stato di grande aiuto!
Stefano.

 oppure non ci sono grandi differenze in termini di prestazioni?)
Dipende quanto sono grossi i dati. Se sono semplici variabili non c'è
problema.
Ricordati che è assolutamente indispensabile deallocare a mano le variabili
application che non usi più, altrimenti lo spazio occupato crescerà fino al
nuovo riavvio del server.
Saluti,
Luca Barbetta kck/skd

 l'utente ha i cookies disabilitati.
aspmunger ( o qualcosa-munger) in pretica è un filtro isapi che riscrive 
tutti gli url appendendoci ?idsession=xxxxx
non ricordo il nome, fa una ricerca sui messaggi vecchi, chiedevo info poco 
tempo fa.
-- 
Antonello Pasella