框架版本:4.0.1UI:BlazorDB:EF Core
我正在尝试本地测试文档中引用的子域租户解析程序: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.多租户";。安装该包后,我收到以下错误,命名空间将无法解决,因此我不得不放弃将该包添加到Blazor项目中(我认为该消息意味着不支持该包与Blazor一起使用(:
NETSDK1082 There was no runtime pack for Microsoft.AspNetCore.App available for the specified RuntimeIdentifier 'browser-wasm'. MyApp.Blazor C:Program Filesdotnetsdk5.0.101SdksMicrosoft.NET.SdktargetsMicrosoft.NET.Sdk.FrameworkReferenceResolution.targets 387
修改主机文件以添加虚拟域(带有租户子域前缀(,并修改applicationhost.config以接受API和Blazor项目的通配符:
<binding protocol="https" bindingInformation="*:44395:" />
<binding protocol="https" bindingInformation="*:44307:" />
将所有launchsettings.json和appsettings.json文件中出现的所有"localhost"更改为使用myapptest.com
运行DBMigrator项目以确保身份服务器记录已更新
运行应用程序。我可以通过包括租户子域在内的相关URL访问应用程序启动页
然而,在尝试登录时,我收到了一个500-"无效的重定向_uri"-我相信它来自IdentityServer。经过一些挖掘,我发现我必须将每个带有客户端子域的URL专门添加到IdentityServerClientRedirectUris表中,以便启用登录重定向。。从stackoverflow上的帖子中可以看出,这些重定向URL配置不支持通配符。当使用子域方案创建新租户时,应该自动添加租户记录吗?还是在添加新租户时需要手动处理?
一旦将URL添加到带有客户端子域的表中,我现在就可以登录了——然而,它似乎总是登录到主机而不是租户。
我做错了什么?
ABP blazor WebAssembly目前似乎不支持基于域的租户解析程序,请参阅:ABP.IO-blazor Web Assembly-租户特定登录