我正在尝试遵循本指南https://www.codingame.com/playgrounds/5518/multi-tenant-asp-net-core-5---implementing-database-per-tenant-strategy 并且已经按照本教程创建了类似的类,但是在我的.net核心项目中
有人能告诉我如何在身份验证之前将尝试登录的用户的用户名传递给GetTenant方法。
httpcontext用户为空,因为我尚未检查密码。
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;
}
}
或者,如果有人要遵循仓库或教程来实施每个租户策略,这将很有帮助。