Базовый веб-API Asp.Net, JWT все еще действителен с другой базой данных для запроса - PullRequest
0 голосов
/ 07 февраля 2019

Я использую ядро ​​asp.net с JWT для авторизации на основе утверждений. Каждый запрос к API сопровождается некоторым ключом, который сообщает мне, с каким именем базы данных связан этот запрос, все базы данных имеют одинаковую схему, пользователь может бытьв одной или нескольких базах данных.

Мой вариант использования:

  1. Создание токена входа в систему путем доступа к API через базу данных 1 (пользователь A существует в базе данных 1).
  2. Используйте токен того же пользователя, чтобы снова получить доступ к API, но на этот раз через базу данных 2 (пользователь A не существует в базе данных 2), но он все еще может получить доступ к API, поскольку его токен имеет требуемую заявку.

это то, как я меняю строку подключения для каждого запроса

            services.AddDbContext<AppDbContext>((serviceProvider, options) =>
        {
            var httpContext = serviceProvider.GetService<IHttpContextAccessor>().HttpContext;
            if (httpContext != null)
                //options.UseSqlServer("newConStr");
        }

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

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