Author: Aamir Hasan
Create StateCollection Class;
public class StateCollection
{
private string _sessionId;
private string _path;
private string _username;
private int _pageview = 1;
public string SessionID { get { return _sessionId; } set { _sessionId = value; } }
public string Path { get { return _path; } set { _path = value; } }
public string Username { get { return _username; } set { _username = value; } }
public int PageView { get { return _pageview; } set { _pageview = value; } }
}
Create SessionTrack Class;
public static class SessionTrack
{
public static ArrayList States = new ArrayList();
static SessionTrack() { }
public static void Add(StateCollection state)
{
int StateIndex = Index(state);
if (StateIndex < 0)
States.Add(state);
else
{
int PageView = ((StateCollection)States[StateIndex]).PageView;
States[StateIndex] = state;
((StateCollection)States[StateIndex]).PageView = PageView + 1;
}
}
public static void Remove(StateCollection state)
{
int StateIndex = Index(state);
if (StateIndex >= 0)
States.RemoveAt(StateIndex);
}
private static int Index(StateCollection state)
{
for (int i = 0; i < States.Count; i++)
if (((StateCollection)States[i]).SessionID == state.SessionID)
return i;
return -1;
}
}
Create default.aspx Page;
Copy Paste Label and Repeater;
<asp:Label ID="LSTotal" runat="server" Text="Visitors: "></asp:Label>
<hr />
<table>
<tr>
<td style="width:200px;">Session ID</td>
<td style="width:100px;">User name</td>
<td style="width:100px;">Page View</td>
<td style="width:300px;">Path</td>
</tr>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td><%# DataBinder.Eval(Container.DataItem,"SessionID") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "Username")%></td>
<td><%# DataBinder.Eval(Container.DataItem, "PageView")%></td>
<td><%# DataBinder.Eval(Container.DataItem, "Path")%></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
In default.aspx.cs Page Load
protected void Page_Load(object sender, EventArgs e)
{
LSTotal.Text += SessionTrack.States.Count;
Repeater1.DataSource = SessionTrack.States;
Repeater1.DataBind();
}
Create Global.aspx Page
replace this function with Session_End if it is Empty
void Session_End(object sender, EventArgs e)
{
// Code that runs when a session ends.
// Note: The Session_End event is raised only when the sessionstate mode
// is set to InProc in the Web.config file. If session mode is set to StateServer
// or SQLServer, the event is not raised.
SessionTrack.Remove(new StateCollection() { SessionID = Session.SessionID });
}
now any one who is connected to Your site will be seen in this page and also you can track of the any page.
this is how simple you can track session in your web admin site.
Author:
Aamir Hasan औथोर:
आमिर हसन أثر
أمير حسن .
cdafd95a-b29d-4b4e-8f1a-203befd60950|0|.0
ALL, asp.net
ajax, asp.net, session