Я пытаюсь следовать этому руководству 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;
}
}
в качестве альтернативы, если у кого-либо есть репозиторий или учебное пособие для реализации стратегии базы данных для каждого арендатора, которая будет полезна.