come posso ottenere gli ID di tutte le sessioni correnti?ottieni l'ID di sessione in ASP.Net
risposta
La risposta dipende parzialmente da dove si memorizza lo stato della sessione. Supponendo di utilizzare l'impostazione predefinita (inproc), è possibile mantenere un elenco degli ID di sessione correnti utilizzando gli eventi Session_Start
e Session_End
in global.asax.
È possibile utilizzare il file Global.asax
e impostare la sessione all'evento Session_Start
. Vedi sotto
in Global.asax
file che si può fare qualcosa di simile:
protected void Session_Start(object sender, EventArgs e)
{
Session["sid"] = Session.SessionID;
Session["sid"] = "Test";
}
Poi, nel tuo WebForm è possibile ottenere l'ID di sessione e valore come qui di seguito
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Session ID is:" + Session.SessionID.ToString()+ "<br/>");
Response.Write("Session value is:" + Session["sid"].ToString());
}
Per informazioni, consultare http://www.dotnetcurry.com/ShowArticle.aspx?ID=126
Se si memorizza lo stato della sessione in SQL Server, è anche possibile ottenerlo facilmente da lì.
Secondo Dino Esposito ogni sessione viene memorizzato nella cache dell'applicazione e con un po 'di lavoro si può retreive queste informazioni:
DataTable dt = new DataTable();
dt.Columns.Add("SessionID", typeof(string));
foreach(DictionaryEntry elem in Cache) {
string s = elem.Key.ToString();
if (s.StartsWith("System.Web.SessionState.SessionStateItem")) {
DataRow row = dt.NewRow();
char[] parms = {':'};
string[] a = s.Split(parms);
row["SessionID"] = a[1];
dt.Rows.Add(row);
}
}
Per ottenere l'id di sessione, fare questo:
// In a user control or page
string sessionId = this.Session.SessionID;
// In a normal class, running in a asp.net app.
string sessionId = System.Web.HttpContext.Current.Session.SessionID;
Si dovrebbe non è necessario:
- Effettuare qualsiasi tabella di dati o un ciclo qualsiasi
- Usa server SQL per lo stato della sessione
- maniglia Session_Start o Session_End
In uno scenario senza cookie, l'ID di sessione viene creata quando si accede l'oggetto Session per la prima volta. Questo non dovrebbe avere molta importanza, perché nel momento in cui si accede alla proprietà SessionID, si accede all'oggetto di sessione.
Per ulteriori informazioni, guardare in questo:
http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.sessionid.aspx
Nota: Gli esempi di MSDN sono stati scritti da scimmie.
Se si desidera memorizzare un elenco delle sessioni correnti in cui si controlla il backing store, in modo da poter memorizzare dati aggiuntivi sul client, è possibile utilizzare un elenco. (Sto scrivendo il seguente esempio dalla cima della mia testa)
Hook nel Application_SessionStart nel file global.asax.cs:
static List<string> sessions = new List<string>();
static object sessionLock = new object();
void Application_SessionStart()
{
lock (sessionLock) {
sessions.Add(Session.SessionID);
}
}
void Application_SessionEnd()
{
lock (sessionLock) {
sessions.Remove(Session.SessionID);
}
}
In alternativa, è possibile utilizzare un dizionario, memorizzare l'ID di sessione come chiave e dati aggiuntivi su quell'utente come valore. Quindi è possibile creare facilmente una pagina che mostri tutte le sessioni utente correnti, ad esempio, per un sito di amministrazione per mostrare le sessioni utente correnti.
SessionEnd verrà chiamato solo se le sessioni sono InProc.
- 1. Stampa tutte le variabili sessione/post/ottieni in ASP.NET pagina
- 2. Powershell Set Lid Close Azione
- 3. sessione ASP.NET in Global.asax
- 4. Avviso di timeout di sessione in ASP.NET
- 5. Cancellare una sessione in ASP.NET
- 6. Fine sessione in ASP.net MVC
- 7. Variabili della sessione di hacking in Asp.NET
- 8. timeout variabili di sessione in app asp.net
- 9. variabili Accesso Asp.Net di sessione in JS
- 10. Richiesta di sessione ASP.net in coda
- 11. Memoria sessione Asp.net
- 12. Prestazioni sessione ASP.NET
- 13. ASP.Net ReadOnly Sessione
- 14. Scadenza sessione MVC ASP.NET
- 15. Variabile sessione Asp.net
- 16. Sessione ASP.NET e LINQ
- 17. Sessione stato server ASP.NET e sessione InProc
- 18. asp.net timeout sessione mvc
- 19. Ottieni la sessione da HttpActionContext
- 20. Ottieni valori di intestazione in ASP.NET MVC
- 21. Sessione time out impostazione in ASP.Net
- 22. Specificando sola lettura sessione in ASP.NET MVC
- 23. Protezione da dirottamento della sessione in ASP.NET
- 24. Autenticazione utente senza stato sessione in ASP.NET
- 25. REST Servizio WCF e sessione in ASP.NET
- 26. Come funziona la sessione in asp.net?
- 27. modalità stato sessione asp.net "SQLServer"
- 28. sessione Windows Azure e ASP.NET
- 29. Ottieni la variabile di sessione magento in un'altra pagina
- 30. Scenario failover provider di stato sessione ASP.Net
si applica a *** asp.net 4.5.1 ***? –