2009-04-11 3 views
0

Ich bin auf der Suche nach einem Benutzer und Session-Tracking-Tool zu schreiben.Verfolgen von Benutzern und Sitzungen auf einer ASP.NET-Website

Ich versuche, eine Seite zu erstellen, auf der ich sehen kann, welche Benutzer angemeldet sind und welche Sitzungsdaten von diesem Benutzer verwendet werden.

Ist das möglich? Oder muss ich einen benutzerdefinierten Sitzungsanbieter schreiben?

Antwort

0

Nein, Sie können nicht auf die Daten anderer Sitzungen zugreifen. Vielleicht können Sie Sitzungsvariablen protokollieren und mit Ihrem Tracking-Tool lesen.

1

Wenn Sie SQL Server verwenden, um Sitzungsdaten zu speichern, könnte es ~ möglich sein, in die Datenbank zu graben ... aber es wäre nicht einfach.

Wenn Sie dies wirklich tun möchten, können Sie eine benutzerdefinierte Klasse für Session erstellen und diese in den Anwendungsdaten speichern. Beispielsweise möchten Sie möglicherweise eine ASP.NET HttpContext.Current.Session.SessionId mit einem HybridDictionary verknüpfen, das Schlüssel/Wert-Paare speichert. Sie könnten dann die Daten auf Anwendungsebene ausspähen.

+0

+1 für den Vorschlag im zweiten Absatz –

0

Sie könnten diese Methode in global.asax verwenden, nein?

void Session_Start(object sender, EventArgs e) 
{ 
    // Insert session id into cache or DB or something 
} 


void Session_End(object sender, EventArgs e) 
{ 
    // Remove session id from cache or DB or something 
} 
+0

Beachten Sie, dass Session_End nur mit InProc-Sitzungsbehandlung aufgerufen wird. –

+0

Ich hoffe, etwas feinkörniger als das zu schreiben. Ich möchte jedes Objekt in einer Benutzersitzung überprüfen. – ilivewithian

+0

Konnte das gesamte Sitzungsobjekt nicht im Cache gespeichert werden? – cerhart

Verwandte Themen