Как передать текущую информацию о сеансе пользователя из веб-приложения на бизнес-уровень в asp. net core?
Я пытался передать информацию о сеансе от контроллера конструктор объекта бизнес-логики c, однако я обнаружил пустое исключение для сеанса, поскольку сеанс не инициализируется до тех пор, пока запрос не будет завершен.
На самом деле, в моем проекте я использую DI, и я просто хотите передать информацию о сеансе из UI -> BL -> DA
, чтобы я мог решить, какая строка подключения будет использоваться в DA, на основе информации о сеансе пользователя, а также использовать текущий идентификатор пользователя в моей операции добавления и редактирования, чтобы поддерживать историю операции ,
Все службы DA и BL настроены с использованием DI, а службы вводятся с использованием DI.
public class SystemUserController : BaseController
{
private readonly IHttpContextAccessor _httpContextAccessor;
public BL.ISystemUserService _systemUserService { get; }
public SystemUserController(BL.ISystemUserService systemUserService, IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
_systemUserService = systemUserService;
_systemUserService.Session = new RepositorySession(_httpContextAccessor.HttpContext.Session.CurrentUser().SystemUserId,DatabaseConnection.CONFIG);
}