Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / VBScript

ASP Session Information (Classic)

4.00/5 (1 vote)
27 Feb 2009CPOL 28.5K   311  
View the contents of Classic ASP Memory

Introduction

The first thing I do when I am asked to resolve an issue with a classic ASP application is to write a script to allow me to view the contents of memory.

This allows me to view an exact copy of all session variables, cookies, etc. at any stage in the application. I tend to have the application in one tab and the session info script in another, refreshing as I navigate the app.

I finally put together a reusable script and thought I would share.

ServerVariables.jpg - Click to enlarge image

The Render Function

Renders an HTML table containing the contents of the oCollection parameter:

VB.NET
Function RenderTOC(sTitle, oCollection)
	Tab		= Chr(9)
	NewLine = Chr(13)

	If IsObject(oCollection) Then
		If (oCollection.Count>0) Then
			Response.Write(NewLine & "<table>" & NewLine)
			Response.Write(Tab & "<caption>" & sTitle & _
						"</caption>" & NewLine)
			Response.Write(Tab & "<thead>" & NewLine)
			Response.Write(Tab & Tab & "<tr><th>Name</th>_
				<th>Type</th><th>Value</th></tr>" & NewLine)
			Response.Write(Tab & "</thead>" & NewLine)
			Response.Write(Tab & "<tbody>" & NewLine)
			For Each D in oCollection
				If (d<>"") And (oCollection(d)<>"") Then
					Response.Write(Tab & Tab)
					Response.Write("<tr>")
					Response.Write("<th>" & _
						Server.HTMLencode(d) & "</th>")
					Response.Write("<td>" & TypeName(d) & _
						"</td>")
					Response.Write("<td>" & _
					    Server.HTMLencode(oCollection(d))_
					     & "</td>")
					Response.Write("</tr>")
					Response.Write(NewLine)
				End If
			Next
			Response.Write(Tab & "</tbody>" & NewLine)
			Response.Write("</table>" & NewLine)
		End If
	End If	
End Function

Using the Code

VB.NET
'  render contents of Request.Application
Call RenderTOC("Application Variables", Application.Contents)

' render contents of Request.Cookies
Call RenderTOC("Cookies", Request.Cookies)

' render contents of Request.SessionVariables
Call RenderTOC("Server Variables", Request.ServerVariables)

' render contents of Request.Form 
Call RenderTOC("Form Collection", Request.Form)

' render contents of Request.Querystring
Call RenderTOC("Querystring Collection", Request.Querystring)

' render contents of Session collection
Call RenderTOC("Session Variables", Session.Contents)

Be Sensible!

It is important not to upload this script to a production server and forget about it, as it exposes privileged information (database connection strings, etc.).

I have attached an ASP script so you can drop this on your server, tweak the accessible IP address and away you go!

History

  • 27th February, 2009: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)