I don’t think you really want to share session information between the two websites. From what I can extract from the comments, what you are really trying to do is authenticate the user on one website (give you a username and password that are verified), and then transfer this state “to the system” to another website, 'handle authentication for yourself.
What you are describing is a delegated authentication model.
In this model, the authentication of your application is performed by other systems on which it hopes to provide information about users.
There are two well-known protocols that provide this mechanism:
Openid
This is intended to facilitate user login using their own identity providers (Google, Facebook, Microsoft Account). This is a very good choice if you use a public website, as most users already have an account with which they can log in.
WS-Federation
This is designed to make it easier for users to log on with identity providers managed by well-known trusted parties, such as partner organizations.
In version 4.5, the .NET Framework has built-in support for WS-Federation through the Windows Identity Foundation component (and is also available for earlier versions as a separate download). This automates the task of delegating your authentication to the identity provider.
It also provides components for writing your own identity provider if you want to create your own, but you don't need to; You can find various existing implementations to do the job for you.
The problem you are trying to solve is very complex, especially trying to make it reliable enough to be reliable. The good news is that smarter people than you have spent years developing very smart ways to do this. You should use what they did, and not try to combine something from the session state.
In the long run, it is best to let smart men work hard for you.