Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    1

    Utenti collegati? ASP.NET

    Chi mi sa dire quale soluzione è migliore per tener traccia dell'Id e del nome degli utenti registrati, che si sono collegati?
    E' meglio una tabella nel DB o, un oggetto Dictionary o, una Hashtable? Ma usando questi ultimi 2, dove li creo e come li uso?
    Devo utilizzarli nel file "global.asax"?
    Tutto questo per poter visualizzare una lista degli utenti collegati in un certo momento al sito!!
    Aiuuuutoooo!!!!

  2. #2
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Io ho nella tabella utenti ho un campo SessionID che viene riempito in fase di login con il Valore appunto di "SessionID", e cancellato nel global.asax in Session_End.
    Sempre nel login associo a delle variabili di sessione i valori che mi interessano prendendoli dal database.
    Per vedere gli utenti collegati ho fatto una mini query su quel campo.
    Se c'è un valore vuol dire che l'utente è collegato.
    Ciao
    Legnetto

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    1

    global.asax

    ma quindi nel global.asax puoi accedere al db per modificare i dati?
    e come si fa? io ho provato ma non ci riesco!!

  4. #4
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Come nelle altre pagine normali.
    Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
    Dim Conn As New SqlConnection()
    Conn.ConnectionString = ConfigurationSettings.appsettings("connectionstrin g")
    Dim updateCmd As String = "UPDATE LEGUTENT SET connesso=0 where SessionID='" & Trim(CStr(Session.SessionID)) & "' "
    Dim myCommand As SqlCommand = New SqlCommand(updateCmd, Conn)
    Conn.Open
    myCommand.ExecuteNonQuery()
    Conn.Close
    End Sub
    Ciao
    Legnetto

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    1

    magari...

    ...magari riuscissi a fare così!
    Ti ho chiesto se si poteva fare una cosa del genere, perchè avevo già provato a fare un DELETE, ma sembra proprio che il mio file global.asax non ne voglia sapere di interagire con il DB!!!!!
    Non è che bisogna importare qualche altra strana classe?
    ciao e grazie

  6. #6
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Trattalo come se fosse un file normale:

    <%@ Import Namespace="System" %>
    <%@ import Namespace="System.Data" %>
    <%@ import Namespace="System.Data.SqlClient" %>
    Se usi Sql.
    Altrimenti
    <%@ Import Namespace="System" %>
    <%@ import Namespace="System.Data" %>
    <%@ import Namespace="System.Data.OleDb" %>
    Se non funziona prova a postare il codice che vediamo cosa può essere.
    Ciao
    Legnetto

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    1

    grazie lo stesso

    ti ringrazio ma ho risolto in un'altra maniera.Ho creato a livello Application una Hashtable nella quale metto tutti gli utenti collegati!
    ciao ciao

  8. #8
    Utente di HTML.it L'avatar di ClaraF
    Registrato dal
    Jul 2001
    Messaggi
    138
    Scusa Legnetto,
    ho fatto anch'io una cosa simile alla tua nel Session_end del Global.asax. Viene scritto nel DB il SessionID e l'ora.
    Ma mi succede una cosa strana, dopo aver compiuto tutte le operazioni della Session_End mi torna automaticamente nella Session_Start e se gli chiedo qual'è il SessionID mi dice che è lo stesso di prima !
    Ma non dovrebbe svanire la Sessione quando si passa dal Session_End ?
    Io vorrei che la sessione finisse :-(
    Sigh,
    Grazie,
    Clara

  9. #9
    Utente di HTML.it L'avatar di ClaraF
    Registrato dal
    Jul 2001
    Messaggi
    138
    Non è che Session.SessionID da la Sessione legata al Browser che è diversa dalle Sessioni che uso io durante la programmazione ?
    Forse farnetico...
    Cl@

  10. #10
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Io ho messo nella tabella utenti un campo "Connesso", e nel file di login faccio:
    "UPDATE nome_tabella SET connesso=1 where sessionid= '" & Trim(CStr(Session.SessionID)) & "' "
    Quindi ho un valore che mi permette di sapere chi è collegato.
    Nel Global.asax:
    Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)

    Dim Conn As New SqlConnection()

    Conn.ConnectionString = Application("Conn")

    Dim updateCmd As String = "UPDATE Nome_tabella SET connesso=0 where SessionID='" & Trim(CStr(Session.SessionID)) & "' "

    Dim myCommand As SqlCommand = New SqlCommand(updateCmd, Conn)

    Conn.Open()

    myCommand.ExecuteNonQuery()

    Conn.Close()

    End Sub

    Così mi funziona senza nessun problema.
    Il Sessionid rimane, per ovviare al problema ogni volta che ti colleghi(Quindi si crea un nuovo sessionid!)faccio l'update e aggiorno il campo coneesso.
    Fammi sapere se così funziona.
    Ciao
    Legnetto

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 © 2025 vBulletin Solutions, Inc. All rights reserved.