There may be a better way to do this with 3.5, but in 2.0 you could use the viewstate. Just add the object to the viewstate and it is automatically included in the default asp.net form as a hidden field. Then on the postback you can retrieve it from the viewstate.
Be careful with it though, your viewstate is included on every page load. Ultimately I would recommend just fetching the object again from the database and avoiding the viewstate. You could also try something like memcached to cache the object server side.
protected void Page_Load(object sender, EventArgs e)
{
if(ViewState["NameOfUser"] != null)
NameLabel.Text = ViewState["NameOfUser"].ToString();
else
NameLabel.Text = "Not set yet...";
}
protected void SubmitForm_Click(object sender, EventArgs e)
{
ViewState["NameOfUser"] = NameField.Text;
NameLabel.Text = NameField.Text;
}
Example from http://asp.net-tutorials.com/state/viewstate/