14 messaggi dal 07 ottobre 2002
Ho delle pagine accessibili solo tramite login. Ora vorrei che una volta effettuato il login tramite uerid e password l'utente risulti 'bloccato' fino a che non effettuerà il logout, questo per evitare che altri utenti accedano al servizio con lo stesso account...
A me è venuto in mente solo di aggiungere nella tabella degli utenti un flag che viene valorizzato quando l'utente effettua il login, ed effettuare controlli su quel campo.

Ci sono altri modi per fare 'sta cosa?!?

Grazie!
35 messaggi dal 27 febbraio 2004
>A me è venuto in mente solo di aggiungere nella tabella degli utenti un flag che >viene valorizzato quando l'utente effettua il login, ed effettuare controlli su quel >campo.

Ti sconsiglio questa soluzione perchè se per esempio il browser va in errore e/o non riesci a fare l'update sul DB l'utente risulta loggato e non entrerà + nel sito finchè non verrà sbloccato a mano.

Ti consiglio di usare le Session magari memorizzando anche l'indirizzo ip del client
3.122 messaggi dal 16 maggio 2002
Appoggio il consiglio di Daniele. In alternativa potresti memorizzare sul database data e ora del login assieme all'indirizzo IP da cui l'ha effettuato, in modo da garantire l'accesso di quell'utente solo da quell'indirizzo per un certo tempo t che tu stabilisci.
Questa soluzione ha però un paio di svantaggi:
- dovresti aggiornare l'orario di login ogni volta che l'utente esegue una operazione, altrimenti se l'utente dovesse rimanere loggato per un tempo maggiore di t potrebbe accedere un altro con lo stesso nome (cosa che tu vuoi evitare)
- se l'utente si collega attraverso un proxy allora il server vedrà l'indirizzo IP del proxy, quindi chiunque attraverso quel proxy si potrà collegare con quel nome utente (ovviamente conoscendo la password).

Il primo "problema" si risolve facilmente (basta un aggiornamento dell'orario ad ogni operazione), per risolvere il secondo potresti usare il SessionID al posto dell'indirizzo IP, ma... sei proprio sicuro di volerlo fare? Cosa succederebbe ad esempio se l'utente chiudesse il browser? Non riuscirebbe più ad accedere. Valuta attentamente.

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

Get caught!
Get caught again!
21 messaggi dal 21 aprile 2003
www.anigrelli.it
E il session time out dove lo mettete?

cosa capita se l'utente, come si diceva, chiude il browser e vuole ri-loggarsi subito?

Ti è proprio necessari fare questa operazione?
Se si dovresti prevedere una pagina di logout forzata anche in chiusura del browser!

Tempo fa ho letto un bellissimo articolo in cui in una pg c'erano due frame (di cui uno nascosto), alla chiusura della pagina ...il primo che tiene d'occhio il secondo apre una pg di logout....
Ci ho provato funziona...ma dovresti tenere le tue Pg in frame (...seppur che occupa tutta la finestra) e poi ha una gestione pesante da Javascript... se vuoi posto l'articolo.....
Fossi in te comunque ci ripenserei
14 messaggi dal 07 ottobre 2002
Effettivamente l'idea dell'utente con un campo che lo blocca non è delle migliori.
Per quanto rigiarda le session, non capisco come posso controllare l'accesso con quelle... forse mi sfugge qualcosa...?!?
35 messaggi dal 27 febbraio 2004
Quando l'utente entra per la prima volta e viene autenticato memeorizzi la
Session(nomeUtente) = UserId
Session(Indirizzo IP) = Request.ServerVariables("REMOTE_ADDR")

Se un utente tenta di accedere con lo stesso nome controlli se esistono le due
Session.

If Not IsNothing(Session(nomeUtente)) then
If Session(Indirizzo IP) <> Request.ServerVariables("REMOTE_ADDR") Then
Response.Write "L'utente " & Chr(34) & Session(nomeUtente) & chr(34) & " è già loggato. Impossibile accedere al sito."
Response.End
End If
End If

Ovviamente il controllo va ripetuto in tutte le pagine (magari con un include) se sei in ASP, discorso diverso e più complesso per l'autenticazione di ASP.Net.

Come ha detto Raynor questo metodo ha un problema:
- se l'utente si collega attraverso un proxy allora il server vedrà l'indirizzo IP del proxy, quindi chiunque attraverso quel proxy si potrà collegare con quel nome utente (ovviamente conoscendo la password).

Se invece sei in una intranet non avrai questo problema


PS: Le session vengo eliminate automaticamente dal server quando l'utente chiude il sito (chiude il browser o cambia sito) e quando scade il Session.TimeOut che puoi impostare sia da IIS che da programma.
1 messaggio dal 25 giugno 2004
Stesso problema per me.
Devo bloccare l'accesso di account identici!
Con le session + database è pericoloso visto la possibilità di chiudere la pagina e di volersi subito riloggare.....cercavo un javascript magari, con frame o popup per il logout obbligatorio!
Qualcuno può aiutarmi??
Grazie
Ale
Modificato da jimix il 25 giugno 2004 23.41 -

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.