Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Monitoraggio accesso a scopo di controllo di chi è logato e chi no

    Ciao,
    io ho un ambiente on line nel quale è possibile accedere solo con username e password personali assegnate da un amministratore a vari utenti i quali accedono fisicamente da varie sedi.
    Capita che negli uffici gli impiegati conoscano le credenziali di tutti e che entrino con username e password di altri, peggio a volte accedeno al sistema tutti con lo stesso "utente".
    Non posso ovviamente controllare che gli impiegati si scambino le credenziali, ma vorrei controllare almeno che non accedano tutti con lo stesso utente.
    NOTA IMPORTANTE: nessuno usa mai il logout, e non c'è speranza di obbligarli ad usarlo.

    All'atto del login io carico una variabile di sessione con il CodUtente, inoltre registro l'entrata su una tabella del mio database.
    A questo punto quando un altro utente si loga potrei andare in tabella a vedere se esiste già un utente logato con quelle credenziali, e se esiste gli impedisco l'accesso, ma in questo modo impedirei ad un utente di logarsi, di chiudere il browser, e di logarsi ancora dopo qualche minuto, in quanto il sistema non sa che l'utente ha chiuso "si è preso un caffè" e poi si è rilogato.

    Onestamente non mi viene alcuna idea di come potrei gestire questo controllo.

    Grazie in anticipo

    Nicola

  2. #2
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    Al momento del login inserisci i dati realtivi a utente e tempo di accesso (un timestamp) in una tabella (online)
    Nel tuo sistema metterai qualcosa (consiglio un frame nascosto) che si ricarica ogni 60 secondi (esempio).
    Ad ogni refresh del frame aggiorni i dati nella tabella on line aggiornando così il timestamp con il valore attuale...

    A questo punto hai una tabella in cui si è loggato un utente, e la precisione al minuto (nel mio esempio) degli utenti logati.
    Qualora un utente chiudesse la finestra senza fare il logout, il frame smetterà di effettuare il refresh e aggiornare il camo con il timestamp.

    Quindi tu potrari mettere un controllo (sempre nella pagina di refresh) in cui dici che tutti gli utenti con campo timestamp maggiore di un minuto (tempo limite del refresh) verranno cancellati dalla tabella on line, così non risultano più connessi.

    Inoltre al momento del login ti basterà controllare che non ci sia già quell'utente nella tabella on line, e impedire o permettere l'accesso...
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  3. #3
    beh la soluzione è un pò lunghetta.

    Puoi aggiungere un campo datetime alla tabella dove tieni i presenti, in modo che quando uno entra con l'utente che ha usato quell'altro prima, se quell'altro non muove un muscolo da 20 minuti o più, dai libero accesso a quello nuovo.
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  4. #4
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    [supersaibal]Originariamente inviato da Manuelandro
    beh la soluzione è un pò lunghetta.

    Puoi aggiungere un campo datetime alla tabella dove tieni i presenti, in modo che quando uno entra con l'utente che ha usato quell'altro prima, se quell'altro non muove un muscolo da 20 minuti o più, dai libero accesso a quello nuovo. [/supersaibal]
    Veramente sono 2 query.. non mi sembra tanto lunghetta :master:

    E hai una cosa precisa al minuto.. (2 - 5- 20 quanto vuole)..
    L'unico problema della soluzione proposta da me, è che se il refresh viene effettuato spesso, si ha un consumo di banda abbastanza consistente.
    Ora in questo caso basta aumentare i minuti di refresh(di conseguenza la differenza di tempo), oppure nel caso di rete aziendale o assenza di problemi di banda.. sbattersene
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  5. #5
    La soluzione del frame nascosto mi pare interessante (sarebbe tipo un'operazione di polling sulla sessione aperta), mi chiedevo se potesse generare molto traffico di rete ?

    ciao

  6. #6
    dimenticavo le aziende hanno tutte l'adsl

  7. #7
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    [supersaibal]Originariamente inviato da Ramosini Nicola
    La soluzione del frame nascosto mi pare interessante (sarebbe tipo un'operazione di polling sulla sessione aperta), mi chiedevo se potesse generare molto traffico di rete ?

    ciao [/supersaibal]
    Bhe calcola che ad ogni refresh del frame, invii diverse quantità di dati, innanzitutto ricarichi la pagina, poi effettui una connessione al database, effettui un update, e un'eventuale delete...

    Se metti il controllo ogni 3/4 minuti.. non dovrebbero esserci grossi problemi..
    Dipende però poi molto da quanti utenti accedono al sito e da che limite di banda hai..
    Però credo che l'unico modo di controllare in effetti gli on line sia proprio quello..
    A meno che non associ l'id di sessione alla tabella on line, e verifichi ogni tanto che sia ancora attiva, ma cmq hai sempre delleinterrogazioni al db da fare..
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  8. #8
    Direi che il tentativo va fatto, comunque il codice da scrivere non è moltissimo e i benefici sarebbero notevoli, considera che i dati trattati sono "dati sensibili" ed il software deve essere il linea con la 196 sul trattamento dei dati.

    grazie ancora

  9. #9
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    [supersaibal]Originariamente inviato da Ramosini Nicola
    Direi che il tentativo va fatto, comunque il codice da scrivere non è moltissimo e i benefici sarebbero notevoli, considera che i dati trattati sono "dati sensibili" ed il software deve essere il linea con la 196 sul trattamento dei dati.

    grazie ancora [/supersaibal]
    No il codice è davvero poco..
    Sono sul serio 2 interrogazioni..
    fare un frameset ed una tabella al db.. se hai dimestichezza, in 20 minuti fai tutto
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.