A session is an object designed to transfer objects between stateless HTTP requests. Winforms apps or console apps are NOT stateless so it is done naturally there.
HTTP is stateless as a protocol. As long as it is, the ASP.net team can never provide a way better than this.