<p>Which method is preferred?</p>

<pre><code>Session.Remove("foo");

Session["foo"] = null;
</code></pre>

<p>Is there a difference?</p>

I would go with Remove but can not honestly say if there is a difference.  At a guess there may still be an empty key kept for that null value but not sure.  Remove would give me little doubt and if that's what you want to do it
reads better
in code as well.