I will recommend you to use an SQL based session state handling and then store it there, It works straight off the bat and you can store any serializable object that way which should facilitate your use scenario.
Other solutions are very likely to cost you more work would be my immediate guess.
http://support.microsoft.com/kb/317604[
^]