How do I send this username to another page as a parameter.
You don't need to send it. The Session object is not part of the page response, it lives on the server side. Therefore, you may set it on page A and be able to retrieve it on page B using the same code you provided:
Session["abc"]=tmp;
And
temp=Session["abc"]
So if I create a Session for all of them with their respective usernames as the keys, how can I retrieve their sessions when they are browsing different pages?
You may retrieve it with the same key you used to store the object in the session. As a matter of fact you may use the same key for all users. For example:
username=Session["username"]
Note: .Net will retrieve the right instance for each object by using a unique identifier that is assigned to each user (the user's SessionId). This however, is transparent to your code.
This question lists a few gotchas when using StateServer Session