получить клиента, который еще не прошел проверку - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь следовать этому руководству https://www.codingame.com/playgrounds/5518/multi-tenant-asp-net-core-5---implementing-database-per-tenant-strategy и создали аналогичные классы согласно учебнику, но в моем основном проекте .net

Кто-нибудь может сказать мне, как я могу в методе GetTenant передать имя пользователя, который пытается войти - до того, как они будут аутентифицированы.

Пользователь httpcontext имеет значение null, поскольку я еще не проверил пароль.

public TenantDbContext(DbContextOptions<TenantDbContext> options, ITenantProvider tenantProvider ) : base(options)
    {
        _tenant = tenantProvider.GetTenant();
    }

 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {                        
        optionsBuilder.UseSqlServer(_tenant.connectionString);
        base.OnConfiguring(optionsBuilder);
    }

public class TenantProvider : ITenantProvider{
    private IdentityContext _identityContext;
    public TenantProvider(IdentityDbContext identityDbContext)
    {
        _identityDbContext = identityDbContext;            
    }
    public Tenant GetTenant()
    {                        
        var tenant = _secureDbContext.Tenant.FirstOrDefault(x=>x.TenantId == 1);            
        return tenant;
    }
}

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

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