identityserver4 - 身份服务器多租户,每个租户数据库的身份表
问题描述
我们目前正在构建多租户应用程序。我们希望有一个具有通用 configDB 和多个租户 DB 的应用程序。我们基于 http 上下文获取租户信息,因此我们编写了自己的连接字符串提供程序。
我们希望每个租户都有身份表。但是我们很难正确设置身份服务器。
我们以前在不需要多租户并且每个应用程序只有一个数据库时使用它
.AddConfigurationStore(options =>
{
options.DefaultSchema = Schemas.Identity;
options.ConfigureDbContext = builder =>
builder.UseSqlServer(connectionStringProvider.DbConnectionString,
sqlOptions => sqlOptions.MigrationsAssembly(migrationsAssembly));
})
.AddOperationalStore(options =>
{
options.DefaultSchema = Schemas.Identity;
options.ConfigureDbContext = builder =>
builder.UseSqlServer(connectionStringProvider.DbConnectionString,
sqlOptions => sqlOptions.MigrationsAssembly(migrationsAssembly));
});
设置身份服务器。现在它只有在我们使用常见的 ConfigDB 时才有效。但我们希望将用户存储在租户数据库中。
所以现在打电话给:
app.UseIdentityServer()
调用 options.ConfigureDbContext 尝试设置 Db 上下文,但此时我们没有 http 上下文信息,因此我们无法提供正确的租户连接字符串。
所以问题基本上是:如何为每个租户设置多个配置和操作存储,以及如何使用身份服务器进行初始设置?
解决方案
推荐阅读
- sql - 如何在存储过程中使用 SQLCMD 变量
- mongodb - 我可以做些什么来使用firebase进行完整的测试搜索或将mongodb全文搜索与firebase连接的最佳方式
- iis - IIS 重写 Content-Disposition 附件文件名
- windows - 我一直在尝试更新我的 SSM 代理。我正在运行命令 AWS updatessmagent
- powerbi - 如何为每周时间段编写 DAX,例如(本周和上周,本周和上个月同一周,本周和去年同一周)
- c++ - OpenCV中积分图像的计算如何如此高效?
- java - 使用 JSONObject 解析 JSON 时出现 IllegalAccessException
- python - 我应该怎么处理这个错误?/ 不支持的操作数类型:“str”和“str”
- javascript - Vue JSON 读写
- python - 为什么要多次插入元素?