32 messaggi dal 11 agosto 2003
Ciao a tutti,

mi sono appeno iscritto ;-) e già ho bisogno del Vs. aiuto!!!

Il quesito è semplice... come posso gestire tramite asp 3.0 un accesso univoco? ossia come posso evitare che un altro utente utilizzi la stessa USER e PASSWORD? Avevo pensato di utilizzare un campo FLAG nella tabella degli user ma se il sistema si pianta i flag rimarrebero attivati!

Potete aiutarmi?

Grazie
Francesco
499 messaggi dal 14 luglio 2001
Usa le session...

se un utente è già attivato con quella username e password, non si può loggarne un altro con lo stesso username e password

enzo
www.dnetware.it
32 messaggi dal 11 agosto 2003
Ciao,

grazie dell'aiuto ;-)

Ti posso chiedere la gentilezza di essere un pò più chiaro... le user già le passo tramite session ma come faccio a controntare due session dallo stesso nome, ad es. Session("USERID")? MI spiego meglio, apro una Sesison valorizzata PIPPO ed un'altra PLUTO, come faccio a confrontare le due variabili appartenenti a due Sessioni distinte ma avente lo stesso nome (session("UserID")?
La domanda ti potrà sembrare banale ma brancolo veramente nel buio!!!

Grazie
francesco
499 messaggi dal 14 luglio 2001
Sotto questo punto di vista hai ragione...

io farei in questo modo:
creerei una tabella (contatore, Session, UserName,Password)
nel file global ASA sezione Session_OnStart memorizzo la session dell'utente nel database appena entra, in questo modo posso risalire in qualsiasi momento all' ID session dell'utente...

quando si logga, quindi immette la sua UserID e Password, controllo se in questa tabella già esiste una ueser name e password memorizzata, se non c'è allora la registro richiamando la session dell'utente , in questo momento la tabella ha tutti e quattro i campi inseriti....

ora veniamo alla cancellazione della sessione quando un utente esegue un LOGOUT o finisce la sessione (in pratica è uscito dal nostro sito)

se creiamo una sezione del sito in cui c'è una opzione di LOGOUT allora richiamo la session dell'utente e la cancello fisicamente dalla tabella...

se invece l'utente se ne va dal nostro sito senza effettuare il logout allora possiamo intervenire nel file GLOBAL.ASA nella sezione Session_OnEnd richiamando la session dell'utente e cancellarlo dalla tabella...

in questo modo, cioè utilizzando una tabella, hai un doppio vantaggio quello di avere un controllo capillare sugli utenti che entrano sia se si loggano si che non si loggano... e in più sai quanti utenti sono presenti nel sito in tempo reale, potendo scindere anche tra utenti loggati e utenti non loggati... un esempio pratico lo trovi proprio quì in aspitalia;
c'è la sezione LOGOUT e se vai in basso a destra c'è un link con CHI E ONLINE .... cliccaci e guarda...

ciao

enzo
www.dnetware.it
32 messaggi dal 11 agosto 2003
Ciao Enzo,

grazi mille per il suggerimento ;-) ma ho ancora un piccolo dubboi... lo so, sono un gran pignolo...eccoti la mie perplessità alla quale non sei obbligato a rispondere ;-)

- Se il sistema va giù come faccio a far ripulire la tabella dove sono allocate le utenze in uso?
Io avevo pensato di utilizzare una flag vicino agli USERID registrati nella mia Tabella degli utenti ma mi è sorto il dubbio di come "asfaltare" le flag se il sistema va down (web server o RDBMS)!

Ti ringrazio cmq per il suggerimento ;-)

francesco
3.122 messaggi dal 16 maggio 2002
Usa variabili di applicazione, in particolare ti consiglio un oggetto Dictionary a livello di applicazione la cui chiave è lo userID dell'utente e il valore può essere l'indirizzo IP dell'host remoto dal quale l'utente si è connesso.
Nel Session_onStart controllerai se già esiste quella entry nell'oggetto (se non esiste la inserirai), all'evento Session_onEnd dovrai ripulire l'oggetto da quell'utente.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
499 messaggi dal 14 luglio 2001
Con l'esempio che ti ho fatto prima il discorso è semplice...

alla sezione Application_onstart del file Global ASA puoi creare una routine che azzera la tabella che ti dicevo prima....

quando il sistema va giù in pratica tutti gli utenti collegati si staccano perdendo di fatto le loro session (normale visto che il server in quel momento è spento o si sta riavviando), per cui nel momento in cui il servizio web IIS parte al riavvio la prima cosa che fa è cancellare la tabella con tutti i residui degli accessi della sessione precente, e questo deve essere così in quanto al riavvio non c'è nessuno loggato se il web non è avviato..mi pare normale no!?...sicchè il servizio di login utenti riparte da 0 come il post che ti ho fatto prima...
in pratica non ti devi più preoccupare di flaggare o deflaggare gli utenti , se sfrutti bene le sezioni del file global asa ti fanno risparmiare un sacco di preoccupazioni ...
spero di essermi spiegato bene..

ciao

enzo
www.dnetware.it
32 messaggi dal 11 agosto 2003
Grazie mille ;-)

A buon rendere...spero ;-)))

francesco

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.