ABP Framework w/ Blazor UI:子域租户解析器

ABP Framework w/ Blazor UI: Subdomain tenant resolver

框架版本:4.0.1 UI:Blazor 数据库:EF 核心

我正在尝试在本地测试文档中引用的子域租户解析器:https://docs.abp.io/en/abp/latest/Multi-Tenancy

我已采取以下步骤,但无法URL解决租户问题:

  1. 向 MyAppHttpApiHostModule.cs 添加了以下代码:
Configure<AbpTenantResolveOptions>(options =>
{
    options.AddDomainTenantResolver("{0}.myapptest.com");
});
  1. 试图将相同的代码添加到 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.0.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets 387

  2. 修改主机文件以添加虚拟域(带有租户子域前缀)并修改 applicationhost.config 以接受 API 和 Blazor 项目的通配符:

<binding protocol="https" bindingInformation="*:44395:" />
<binding protocol="https" bindingInformation="*:44307:" />
  1. 将所有 launchsettings.json 和 appsettings.json 文件中出现的所有 'localhost' 更改为使用 myapptest.com

  2. 运行 DBMigrator 项目确保身份服务器记录已更新

  3. 运行 应用程序。我可以通过相关 URL 访问应用程序启动页面,包括租户子域

  4. 但是,在尝试登录时,我收到了 500 - 'Invalid redirect_uri' - 我认为这是来自 IdentityServer。在做了一些挖掘之后,我发现我必须将每个 URL 与客户端的子域专门添加到 IdentityServerClientRedirectUris table 中,以便启用登录重定向。从 Whosebug 上的帖子中可以看出,这些redirect URL 配置不支持通配符。使用子域方案创建新租户时应该自动添加租户记录,还是需要在添加新租户时手动处理?

  5. 将 URL 添加到带有客户端子域的 table 后,我现在可以登录了——但是,它似乎总是登录到主机而不是租户.

我做错了什么?

ABP blazor WebAssembly 目前似乎不支持基于域的租户解析器,请参阅: