Asp.Net Core 2.2 меняет время выполнения базы данных текущим пользователем - PullRequest
0 голосов
/ 14 июня 2019

У меня есть проект ASP.NET Core 2.2 с использованием EF Core, который используется несколькими клиентами.Каждый клиент имеет свою собственную базу данных с точно такой же схемой, управляемой IRepository (динамически загружаемые наборы данных).Это несколько суб-доменных проектов, я хотел бы войти в систему использует account.example.com, после того как аутентифицированные пользователи будут перенаправлены на сайты B site.example.com, авторизованные с помощью Cookie Authentication.

Веб-сайт A, на www.example.com

Веб-сайт B, на site.example.com - (Моя заявка)

Веб-сайт C, на account.example.com- (ASP.NET Identity -.Net Core 2.2)

public MydbContext(string dbName)
        { 
            this.Database.GetDbConnection().ChangeDatabase(dbName);

        }

Но он получил строку подключения по умолчанию, которая была добавлена ​​в ConfigureServices в классе startup.cs.Как я могу использовать Session для хранения строки подключения текущего пользователя из Cookie в HttpContext.User и изменения строки подключения DBContext для запроса.

1 Ответ

0 голосов
/ 14 июня 2019

Вы можете передать строку подключения вашему конструктору и использовать ее. Шаблон в EF Core выглядит так:

public class Db : DbContext
{
    readonly string connectionString;

    public Db(string connectionString)
    {
        this.connectionString = connectionString;
    }
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(connectionString);
        base.OnConfiguring(optionsBuilder);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...