Değerli arkadaşlar,

Bütün session verisi üzerinde işlem yapmanız gerekebilir. Bu konu ile ilgili güzel bir çalışma buldum.

Önce Kaynak

http://weblogs.asp.net/imranbaloch/archive/2010/04/05/reading-all-users-session.aspx

Aslında kaynak çok güzel anlatmış. Okumak istediğiniz session verisi için

object obj = typeof(HttpRuntime).GetProperty("CacheInternal", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null, null);
object[] obj2 = (object[])obj.GetType().GetField("_caches", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(obj);
for (int i = 0; i < obj2.Length; i++)
{
    Hashtable c2 = (Hashtable)obj2[i].GetType().GetField("_entries", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(obj2[i]);
    foreach (DictionaryEntry entry in c2)
    {
        object o1 = entry.Value.GetType().GetProperty("Value", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(entry.Value, null);
        if (o1.GetType().ToString() == "System.Web.SessionState.InProcSessionState")
        {
            SessionStateItemCollection sess = (SessionStateItemCollection)o1.GetType().GetField("_sessionItems", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(o1);
            if (sess != null)
            {
                if (sess["User"] != null)
                {
                    Label1.Text += sess["User"] + " is Active.<br>";
                }
            }
        }
    }
}

Vb için 

Dim obj As Object = GetType(HttpRuntime).GetProperty("CacheInternal", BindingFlags.NonPublic Or BindingFlags.Static).GetValue(Nothing, Nothing)
Dim obj2 As Object() = DirectCast(obj.GetType().GetField("_caches", BindingFlags.NonPublic Or BindingFlags.Instance).GetValue(obj), Object())
For i As Integer = 0 To obj2.Length - 1 Step 1
    Dim c2 As Hashtable = DirectCast(obj2(i).GetType().GetField("_entries", BindingFlags.NonPublic Or BindingFlags.Instance).GetValue(obj2(i)), Hashtable)
    For Each entry As DictionaryEntry In c2
        Dim o1 As Object = entry.Value.GetType().GetProperty("Value", BindingFlags.NonPublic Or BindingFlags.Instance).GetValue(entry.Value, Nothing)
        If o1.GetType().ToString() = "System.Web.SessionState.InProcSessionState" Then
            Dim sess As SessionStateItemCollection = DirectCast(o1.GetType().GetField("_sessionItems", BindingFlags.NonPublic Or BindingFlags.Instance).GetValue(o1), SessionStateItemCollection)

            If Not sess Is Nothing Then
                If Not sess("User") Is Nothing Then
                    //Label1.Text = sess("User")
                End If
            End If

        End If

    Next
Next

Kodda gözüktüğü üzere bütün kullanıcıların Session daki User datalarını listeleyebiliyoruz.

 İyi çalışmalar.