1

我正在开发一个 ASP.NET 样板服务项目。

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

租户名称无效

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

4

2 回答 2

1

从有关租户管理的文档中:

AbpTenant 类定义了一些基本属性,最重要的是:

  • TenancyName:这是应用程序中租户的唯一名称。不应正常更改。它可用于将子域分配给租户,例如“ mytenant .mydomain.com”。租户。TenancyNameRegex常量定义命名规则。
  • Name:租户的任意、人类可读的长名称。

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

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

于 2017-12-27T10:38:01.303 回答
1

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

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

于 2017-12-28T06:09:41.627 回答