Как настроить Serilog MSSqlSink в net core 3, чтобы использовать разные строки подключения для каждого веб-запроса? - PullRequest
1 голос
/ 24 марта 2020

У меня есть мультитенантное приложение Web API. net core 3.1, которое обращается к базам данных с одним арендатором. Таким образом, каждый запрос действует на любую из баз данных n . У меня EF Core DbContext настроен так, что он разрешает строку подключения из заявки в запросе http, но я не знаю правильного подхода к созданию аналогичной настройки для MSSqlSink Serilog. Вот сокращенная настройка DbContext, чтобы дать вам представление о том, что я пытаюсь выполнить sh:

        services.AddDbContext<MyContext>((serviceProvider, options) =>
        {
            // IHttpContextAccessor enables us to get at the claims
            var httpContext = serviceProvider.GetRequiredService<IHttpContextAccessor>().HttpContext;
            var httpRequest = httpContext.Request;

            var claim = httpContext.User.Claims.FirstOrDefault(x => x.Type == "MyClaim");
            var customerIdentifier = claim.Value;
            var connectionString = GetConnectionString(customerIdentifier);

            options.UseSqlServer(connectionString);
        });

До сих пор я только смог найти примеры для настройки MSSqlSink Serilog с известная единственная строка соединения через appsettings или переменные окружения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...