Saludos Joven, dado el inconveniente que tienes en temas de lógica te comparto que con el mismo problema me topé al momento de desarrollar una aplicación web para algunas entidades financieras y se hacía necesario el uso de las variables de sesión: RECOMENDACIÓN: No te recomiendo que utilices muchas variables de sesión y caer en el típico abuso de las mismas.
Trata de enfocarte en el uso de variables de sesión para elementos o información básica y no pretendas tener toda la información del usuario, empresa, rol, etc en variables de sesión ya que esto ocasionaría lentitud en tu proceso.
Si fuera necesario tener la información completa del usuario en una variable de sesión (Evitando tener varias variables de sesión) lo que puedes hacer es crear un objeto (modelado) con las propiedades que se tengan del usuario y posterior a esto parsear la variable de sesión para que herede estas propiedades, a continuación te explico y pongo el código para su mayor comprensión.
Clase Model: usuarioInfo.cs