Вы должны иметь возможность использовать HttpContext.Current.Session
Редактировать
Хотя да, я согласен, что вам не следует тесно связывать ваши сборки Business Logic DAL или других сборок с сеансом ASP.Net. Существует множество действительных случаев доступа к HTTP-контексту вне веб-проекта.
Web Controls - это, вероятно, один из лучших примеров, многократно используемые модули http и т. Д. И т. Д. *
Теперь одним из вариантов, если вы хотите, чтобы ваша DLL извлекала материал из Session, является абстрагирование сессии. Таким образом, вы можете определить интерфейс, такой как IStorage, который ваша библиотека будет знать, как использовать. Затем вы можете иметь класс SessionStorage или MemoryStorage и использовать IoC для внедрения подходящего класса в ваши библиотечные классы. Это дает вам свободу кодировать его так, как вы хотели, чтобы он был закодирован без привязки вашего кода к Session. Да, и еще одно преимущество, если все сделано правильно, также может использоваться, чтобы не привязывать ваш код к сеансу в Интернете.