租户名称无效

Invalid Tenancy Name

我正在从事 ASP.NET 样板服务项目。

当我保存客户端时,它 returns 一个错误:

Tenancy Name is not valid

租户名称包含空格。 TenantDto 映射到 Tenant 对象没有任何错误。数据库 table TenancyName 列是 nvarchar(64)。保存时出错

来自 Tenant Management 上的文档:

AbpTenant class defines some base properties, most important ones are:

  • TenancyName: This is unique name of a tenant in the application. It should not be changed normally. It can be used to allocate subdomains to tenants like 'mytenant.mydomain.com'. Tenant.TenancyNameRegex constant defines the naming rule.
  • Name: An arbitrary, human-readable, long name of the tenant.

TenancyNameRegex"^[a-zA-Z][a-zA-Z0-9_-]{1,}$",因为子域中不允许有空格。

如上所述,使用 Name 作为租户的人类可读名称(带空格)。

在保存租户之前,它正在根据 TenancyNameRegex 正则表达式进行验证。因此,租户名称不能包含 space(按设计)。 不要删除正则表达式检查,而是添加客户端验证来检查租户名称。

protected virtual Task ValidateTenancyNameAsync(string tenancyName)
{
    if (!Regex.IsMatch(tenancyName, AbpTenant<TUser>.TenancyNameRegex))
    {
         throw new UserFriendlyException(L("InvalidTenancyName"));
    }

    return Task.FromResult(0);
}

查看代码=> https://github.com/aspnetboilerplate/aspnetboilerplate/blob/45fe6d9f38b79ab111eaf2a54b507b87c92e544e/src/Abp.Zero.Common/MultiTenancy/AbpTenantManager.cs#L222