 <p>Do it in the <code>Session_Start</code> method in your <a href="http://msdn.microsoft.com/en-us/library/2027ewzw.aspx" rel="nofollow noreferrer">Global.asax</a> like so...</p> <pre><code>protected void Session_Start(object sender, EventArgs e) { Session["AttemptCount"]=new Hashtable(); } </code></pre> <p><strong>Update:</strong></p> <p>Then simply just do a check to see if the session variable exists, if it doesn't only then create the variable. You could stick it in a property to make things cleaner like so...</p> <pre><code>public Hashtable AttemptCount { get { if (Session["AttemptCount"] == null) Session["AttemptCount"]=new Hashtable(); return Session["AttemptCount"]; } } </code></pre> <p>And then you could just call on the property <code>AttemptCount</code> wherever you need like so...</p> <pre><code>public void doEvent(object sender, EventArgs e) { AttemptCount.Add("Key1", "Value1"); } </code></pre>