For one thing, this topic has been extensively discussed in the various ASP mailing lists. Even answer 5 is a variation on this. But it puts other restrictions on its use, of course. If you need to keep a LOT of information in between pages, then you probably need such a heavyweight solution. But MOST ASP applications really need to pass very little info from one page to the next.
Most applications can live with a few strings, a couple of numbers, etc.
And this works out nicely when compared to the capabilities of URLs and Server. Typically, it's around 1000 characters, but you might run into situations where it is only 255 or so. QueryString dict.add item, Request. Those are simple, mechanical changes, relatively unobtrusive. Answer 3 cancels answer 2 by the same author.