Сессия является правильным местом для хранения этих данных.
Чтобы использовать его в BLL, вы можете абстрагироваться от сеанса и создать какой-либо UserStore, который скрывает реализацию.Это может быть введено через DI, возможно, с использованием контейнера IoC.
Более простой подход заключается в передаче ссылки на текущий HttpContext или сеанс либо при создании объекта BLL, либо при вызове метода.В идеале вы должны использовать библиотеку abstractions , чтобы обеспечить ее тестируемость.