【发布时间】:2020-12-24 14:56:57
【问题描述】:
框架版本:4.0.1 用户界面:Blazor 数据库:EF 核心
我正在尝试在本地测试文档中引用的子域租户解析器:https://docs.abp.io/en/abp/latest/Multi-Tenancy
我已采取以下步骤,但无法将 URL 解析为租户:
- 在 MyAppHttpApiHostModule.cs 中添加了以下代码:
Configure<AbpTenantResolveOptions>(options =>
{
options.AddDomainTenantResolver("{0}.myapptest.com");
});
-
尝试将相同的代码添加到 MyAppBlazorModule.cs。 未找到 AddDomainTenantResolver() 方法 - 检查源代码,这似乎是 NuGet 包“volo.abp.aspnetcore.multitenancy”的一部分。安装包后,我收到以下错误,并且命名空间将无法解析,所以我不得不放弃将包添加到 Blazor 项目(我相信该消息意味着该包不支持与 Blazor 一起使用):
NETSDK1082 There was no runtime pack for Microsoft.AspNetCore.App available for the specified RuntimeIdentifier 'browser-wasm'. MyApp.Blazor C:\Program Files\dotnet\sdk\5.0.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets 387 -
修改 hosts 文件以添加虚拟域(带有租户子域前缀)并修改 applicationhost.config 以接受 API 和 Blazor 项目的通配符:
<binding protocol="https" bindingInformation="*:44395:" />
<binding protocol="https" bindingInformation="*:44307:" />
-
将所有 launchsettings.json 和 appsettings.json 文件中出现的所有“localhost”更改为使用 myapptest.com
-
运行 DBMigrator 项目以确保身份服务器记录已更新
-
运行应用程序。我可以通过包括租户子域在内的相关 URL 访问应用程序启动页面
-
但是,在尝试登录时,我收到了 500 - 'Invalid redirect_uri' - 我相信它来自 IdentityServer。在进行了一些挖掘之后,我发现我必须将带有客户端子域的每个 URL 专门添加到 IdentityServerClientRedirectUris 表中,以启用登录重定向。从 stackoverflow 上的帖子中可以看出,这些重定向 URL 配置不支持通配符。使用子域方案创建新租户时是否应该自动添加租户记录,还是需要在添加新租户时手动处理?
-
将 URL 添加到带有客户端子域的表后,我现在可以登录 - 但是,它似乎总是登录到主机而不是租户。
我做错了什么?
【问题讨论】:
标签: abp