You can always save the new ID in a hidden form field and then use the Load feature to load a just saved id. (At least, that's how I do it -- I'm sure there is a better way, but I do not know of it).
Code:
Client client = (Client)session.CreateQuery("from Client where ClientSSN = :ssn").SetParameter("ssn", txtClientSSN.Text).UniqueResult<Client>();
This is if your customer wants to search by Social. If you want the program to retreive the clientID from a just saved client, you can save the client (session.Save(client)), and Flush it for good measure (I'd love to know if I don't need to flush it at this point), and then simply save the clientid to a textbox.
Code:
Client client = session.Get<Client>(int.Parse(txtClientID.Text));
I use Hibernate for a WinForms application, and unfortunately, most of the examples I see are for ASP.NET 2.0. I know there isn't much difference, except I don't have to worry about state.